스크립트 파일을 Asset 형태로 만든 Object.
주로 Data 를 처리하기 위해 사용하며 각 field를 에디터에서 편집할 수 있다.
이를 위해서 class MoneBehaviour 대신 ScriptableObject 를 상속받는다.
따라서 GameObject 에 Component 로 추가할 수 없고 Asset 형태로 존재하게 된다.
또한 쉽게 메뉴에서 생성할 수 있도록 CreateAssetMenu() 로 정의해준다.
Class 에 Data 구조를 작성하면, 객체마다 해당 Data 크기만큼 메모리에 할당하게 된다.
한 두개의 객체를 생성한다면 문제될 게 없지만, 수많은 객체를 선언해야 할 때는 메모리를 낭비하게 된다.
이 때 생성된 객체가 ScriptableObject의 Data 를 참조하게 만든다면 이러한 낭비를 줄일 수 있게 된다.
예)
여러 명의 관중이 등장하는 게임을 만든다고 가정해본다면...
public enum eGenderType { Male, Female }
public enum eAgeType { Kid, Junior, Adult, Senior }
public enum eAnimationType { Idle, Shout, Cheer, Boo }
class Clowd
{
public eGenderType Gender { get; private set; } = eGenderType.Male;
public eAgeType Adult { get; private set; } = eAgeType.Adult;
public eAnimationType Animate { get; private set; } = eAnimationType.Idle;
}
로 선언하고 각 객체가 Clowd Data 를 참조하게 만든다.
'프로그래밍 > Unity' 카테고리의 다른 글
StartCoroutine (1) | 2024.10.12 |
---|---|
편집 도구는 어떤걸 선택해야 하나? (Visual Studio, Visual Studio Code) (2) | 2024.10.10 |
유니티는 어떻게 Coroutine 을 처리하는가 (0) | 2024.10.04 |
MonoBehaviour 를 상속받은 Class 주의점 (0) | 2024.09.18 |
자체 UI 크기 설정 (0) | 2024.09.16 |