
아이템 데이터는 일반 클래스로 선언해두고, 필요한 쪽에서 리스트로 사용
인스펙터에서 아이템 데이터의 enum이나 스프라이트 조절
이유는 아이템 데이터 클래스를 리스트로 만들어놔도 내부의 메서드를 사용하려면 인스턴스로 생성이 되는 과정이 필요했기에,, 앞에 했던 생각은 비논리적이었다.
C#의 기본기를 까먹은 실수는 오랜만이었다.
추가로 SO에 프리팹 드래그앤 드랍 할 때, SO 내부의 스프라이트 변수에 프리팹의 스프라이트를 대입해주고 싶었다.
OnValidate()를 재정의 해주면 드래그앤 드랍 시에 프리팹의 스프라이트를 SO클래스의 스프라이트에 대입되게 할 수 있다.
간단한 편의성을 챙겼음.
#if UNITY_EDITOR
public void OnValidate()
{
if (prefab != null)
sprite = prefab.GetComponent<SpriteRenderer>()?.sprite;
}
#endif