저번에 만들었던 아이템 시스템에 개편이 필요해 보여서 수정을 했다. 수정 내용은 다음과 같다.
#region itemValue
[Header("Effect Value")]
[BoxGroup(GroupName = "EffectValue")]
public float healCount;
[BoxGroup(GroupName = "EffectValue")]
public float damageCount;
[BoxGroup(GroupName = "EffectValue")]
public float defenceDecrease;
[BoxGroup(GroupName = "EffectValue")]
public float defenceIncrease;
[BoxGroup(GroupName = "EffectValue")]
public float strength;
[BoxGroup(GroupName = "EffectValue")]
public float weakening;
#endregion
public virtual void UseItem()
{
foreach(ItemEffectBase effect in effectList)
{
float value = 0;
switch (effect.effectType)
{
case EffectType.Heal:
value = healCount;;
break;
case EffectType.Damage:
value = damageCount;;
break;
case EffectType.Strength:
value = strength;
break;
case EffectType.Weakening:
value = weakening;
break;
case EffectType.DefenceDecrease:
value = defenceDecrease;
break;
case EffectType.DefenceIncrease:
value = defenceIncrease;
break;
}
effect.UseEffect(value);
}
if (endImmediately)
EndItemEffect();
else
ItemManager.Instance.Delay(EndItemEffect, effectEndTime);
}
저번과 다른 점은 Item을 생성할 때마다 그에 맞는 Effect를 생성해야 했지만 그게 상당히 비효율적이여서 Item에서 그 값을 대신 설정해주기로 했다. Effect에 Enum을 추가하고 UseEffect를 하기전에 switch로 value값을 정해줬다. 이렇게 하면
전보다 깔끔해졌다. 굳~
'Unity' 카테고리의 다른 글
[졸업작품, Unity] ItemSystem 구조 수정 (0) | 2025.03.14 |
---|---|
[졸업작품, Unity]Assembly definition를 사용하는 방법 (1) | 2025.03.12 |
[졸업작품, Unity] 결과창 제작 (0) | 2025.03.06 |
[졸업 작품, Unity]Item System 제작 (0) | 2025.03.04 |
[엔진 프로젝트]Enemy Walking Around with BT (0) | 2024.12.03 |