Scriptable Object
: 메모리에 스크립터블 오브젝트의 데이터 원본 만을 저장하고 이것을 참조하는 방식으로 작동해서 메모리 소모를 줄이는 것.
- 유니티에서 기본적으로 제공 된다.
- Custom Component 를 만들 때 상속 받게 되는 MonoBehaviour Class 와 마찬가지로 기본 유니티 오브젝트에서 파생 된다.
- GameObject에 Component로 부착할 수 없고, 프로젝트에 Asset으로 저장된다.
실습
Mob 종류를 나눠보자.
- Make the MobData Script
- MonoBehaviour → ScriptableObject to Change
- Make [CreateAssetMenu( )]
- CreateAssetMenu attribute : ScriptableObject 를 상속 받는 클래스를 ScriptableObject Asset 으로 생성해주는 역할을 한다.
- 매개변수 : fileName, menuName, order 가 있다.
- fileName : 생성된 ScriptableObject Asset 의 이름을 정하는 Parameter
- menuName : ScriptableObject Asset을 생성하는 메뉴의 이름을 정하는 Parameter
→ In Unity Menu, [Asset > Create] Under Menu Will find it
이름에 “/”를 넣으면 경로로 표기되어 ScriptableObject 메뉴 아래의 Mob Date 항목으로 표시할 수 있다.
- order : Create 메뉴들 중에서 몇 번째 위치에 표시할 것 인지를 정하는 Parameter
(가장 마지막 표시 : int.MaxValue)
- Make a Parameter ([SerializeField])
- -> Asset → Create → ScriptableObject → MobData Click.
- 복붙해서 몹의 종류만큼 만든다. (Ctrl + D)
- Create a Empty, Prefab (Mob) + Mob Script
- Mob Spanwer Script 쓰기.
- Create Empty → “Mob Spawner”, + Mob Spanwer Script
- Prefab, MobData ++