Unity
[졸업작품, Unity]아이템 시스템 수정
HK1206
2025. 3. 9. 23:38
저번에 만들었던 아이템 시스템에 개편이 필요해 보여서 수정을 했다. 수정 내용은 다음과 같다.
#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값을 정해줬다. 이렇게 하면
전보다 깔끔해졌다. 굳~