Scriptable Object 란?
- ScriptableObject는 클래스 인스턴스와는 별도로 대량의 데이터를 저장하는 데 사용할 수 있는 데이터 컨테이너다.
- ScriptableObject의 주요 사용 사례 중 하나는 값의 사본이 생성되는 것을 방지하여 프로젝트의 메모리 사용을 줄이는 것이다.
- 연결된 MonoBehaviour 스크립트에 변경되지 않는 데이터를 저장하는 프리팹이 있는 프로젝트의 경우 유용하다.
Scriptable Object 특징
- 프리팹을 인스턴스화할 때마다 해당 데이터의 자체 사본이 생성된다.
- 중복 데이터를 저장하는 대신 ScriptableObject를 이용하여 데이터를 저장한 후 모든 프리팹의 레퍼런스를 통해 액세스할 수 있다.
- 즉, 메모리에 데이터 사본을 하나만 저장한다.
- ScriptableObject는 기본 Unity 오브젝트에서 파생되나, MonoBehaviour와는 달리 게임 오브젝트에 ScriptableObject를 연결할 수 없으며 대신 프로젝트의 에셋으로 저장해야 한다.
- 에디터 사용 시, ScriptableObject에 데이터를 저장하는 작업은 편집할 때나 런타임에 가능하다.
- 배포된 빌드에서는 ScriptableObject를 사용하여 데이터를 저장할 수 없으나, 개발 시 설정한 ScriptableObject 에셋의 저장된 데이터를 사용할 수 있다.
- 에디터 툴에서 에셋 형태로 ScriptableObject에 저장한 데이터는 디스크에 작성되므로 세션 간에도 그대로 유지된다.
Scriptable Object 사용
- 사용 사례
- 에디터 세션 동안 데이터 저장 및 보관
- 데이터를 프로젝트의 에셋으로 저장하여 런타임 시 사용
- ScriptableObject를 사용하려면 애플리케이션의 Assets 폴더에 스크립트를 생성하고 ScriptableObject 클래스에서 상속하도록 해야한다.
- CreateAssetMenu 속성을 사용하면 더욱 간편하게 클래스를 이용하여 커스텀 에셋을 생성할 수 있다.
'이론' 카테고리의 다른 글
| Race Condition (0) | 2024.04.05 |
|---|---|
| Sprite Sheet (0) | 2024.04.03 |
| SerializeObject (0) | 2024.04.01 |
| Unity Mechanim (1) | 2024.03.31 |
| Asset Database (0) | 2024.03.30 |