반응형
* 자세한 구현은 MMLoot 클래스 참조
List의 경우 바로 쓰면, 다른 enum이 선택되어도 사라지지 않고 계속 남아있어서 클래스로 한번 싸서 적용.
public enum ExpModes { Unique, List, ScriptableObject }
[Space(10)]
[Header("데이터 타입")]
public ExpModes ExpMode = ExpModes.Unique;
[MMEnumCondition("ExpMode", (int)ExpModes.Unique)]
[SerializeField] private int expPoint;
[MMEnumCondition("ExpMode", (int)ExpModes.List)]
[SerializeField] private MMCustomList<int> expList;
[MMEnumCondition("ExpMode", (int)ExpModes.ScriptableObject)]
[SerializeField] private EnemyData expData;
private int GetExp()
{
switch (ExpMode)
{
case ExpModes.Unique:
return expPoint;
case ExpModes.List:
if (expList == null) return 100;
return expList.data[level-1];
case ExpModes.ScriptableObject:
return expData.Exp + expData.ExpDiff * (level-1);
default:
throw new ArgumentOutOfRangeException();
}
}
[System.Serializable]
public class MMCustomList<T>
{
public List<T> data;
}
System.Serializable 안쓰면 Inspector에 안뜸
반응형
'Unity > TopdownEngine' 카테고리의 다른 글
근접한 적 앞에서 부들부들 거림 방지 (0) | 2023.12.09 |
---|---|
Enemy Weapon 조준 시 Y축 포함 (0) | 2023.12.09 |
Weapon의 데미지가 안들어가는 경우 (0) | 2023.07.06 |
렉돌(Ragdoll) 구현 (0) | 2023.05.25 |
무기 조준 각도 변경 (0) | 2023.05.11 |