스크립터블 오브젝트(ScriptableObject)는 에셋(Asset) 형태로 프로젝트 내에 존재하는 데이터이기 때문에, 이를 생성하려면 유니티의 에셋 생성 메뉴를 통해 새 스크립트를 만들어야 합니다.
유니티 6부터는 기존의 모노비헤이비어(MonoBehaviour) 스크립트 외에도, 스크립터블 오브젝트 전용 스크립트를 생성할 수 있는 메뉴가 별도로 제공됩니다.
다음 절차에 따라 새 스크립터블 오브젝트 스크립트를 생성할 수 있습니다:
새로운 스크립터블 오브젝트(ScriptableObject) 스크립트 파일이 생성되었다면, 이 파일의 이름을 PersonalData로 변경합니다.
그리고 이 스크립트를 더블 클릭하여 열어보면, 다음과 같은 코드가 기본으로 생성되어 있을 것입니다.
using UnityEngine;
[CreateAssetMenu(fileName = "PersonalData", menuName = "Scriptable Objects/PersonalData")]
public class PersonalData : ScriptableObject
{
}
스크립트 파일의 내용을 살펴보면, 클래스 정의 위에 [CreateAssetMenu] 어트리뷰트(Attribute)가 선언되어 있는 것을 확인할 수 있습니다.
[CreateAssetMenu(fileName = "PersonalData", menuName = "Scriptable Objects/PersonalData")]
이 어트리뷰트는 스크립터블 오브젝트(ScriptableObject) 에셋을 유니티 에디터의 메뉴에서 직접 생성할 수 있도록 해주는 기능을 담당합니다.
이때, [CreateAssetMenu] 어트리뷰트에는 몇 가지 속성이 함께 정의되어 있습니다.
먼저 fileName 항목에는 "PersonalData"라는 값이 지정되어 있을 것입니다. 이 값은 에셋을 생성할 때 기본으로 제시되는 파일 이름입니다.
[CreateAssetMenu(**fileName = "PersonalData"**, menuName = "Scriptable Objects/PersonalData")]
그 옆에 있는 menuName 항목은 이 스크립터블 오브젝트 에셋이 유니티 상단의 Assets > Create 메뉴 내에서 어떤 경로로 표시될지를 지정합니다.