ScriptableObject
일반 스크립트를 데이터 저장용으로 prefab에 사용하면 (변수의 byte * 객체수)의 메모리를 사용한다.
하지만 ScriptableObject을 사용하면 변수의 byte만 사용한다.
또 다른 점은 컴포넌트로 부착할 수 없으며, 에셋으로 저장된다.
ScriptableObject의 사용 예시는 아래와 같다.
using UnityEngine;
[CreateAssetMenu(fileName = "Data", menuName = "ScriptableObjects/SpawnManagerScriptableObject", order = 1)]
public class SpawnManagerScriptableObject : ScriptableObject
{
public string prefabName;
public int numberOfPrefabsToCreate;
public Vector3[] spawnPoints;
}
CreateAssetMenu을 통해 에셋 메뉴를 생성할 때 기본 파일 이름, 메뉴 트리, 메뉴 순번을 지정할 수 있다.
위의 코드를 통해 기본 이름이 Data인 에셋 메뉴를 생성할 수 있다.