ScriptableObject
ScriptableObject는 클래스 인스턴스와는 별도로 대량의 데이터를 저장하는 데 사용할 수 있는 데이터 컨테이너이다. ScriptableObject의 주요 사용 사례 중 하나는 값의 사본이 생성되는 것을 방지하여 프로젝트의 메모리 사용을 줄이는 것이다. 이는 연결된 MonoBehaviour 스크립트에 변경되지 않는 데이터를 저장하는 프리팹이 있는 프로젝트의 경우 유용하다. 프리팹은 인스턴스화할 때마다 해당 데이터의 자체 사본이 생성된다. 이처럼 중복 데이터를 저장하는 대신 ScriptableObject를 이용하여 데이터를 저장한 후 모든 프리팹의 레퍼런스를 통해 액세스할 수 있다. 즉, 메모리에 데이터 사본을 하나만 저장한다.
https://www.youtube.com/watch?v=aPXvoWVabPY
에디터에서 ScriptableObject 생성시키기
다음처럼 attribute를 정의하면 에디터에서 CardData를 생성시킬 수 있다.
[Serializable]
[CreateAssetMenu(fileName = "Data", menuName = "ScriptableObjects/CardData", order = 1)]
public class CardData : ScriptableObject
{
public string cardName;
public Sprite sprite;
public PlayerCharacterData characterData;
}
스크린샷
'게임 엔진 > Unity' 카테고리의 다른 글
[Google Play] 구글 플레이 결제 시스템(IAP) 세팅 (0) | 2021.08.08 |
---|---|
[Google Play] 구글 플레이 게임 서비스 세팅 (2) | 2021.08.07 |
[Unity] [Example] 평면 연산 방법 (Plane) (0) | 2020.07.28 |
[Unity] [Example] Mesh (0) | 2020.07.15 |
[Unity] [Example] Singleton (0) | 2020.07.13 |