스크립터블 오브젝트 코드 생성

스크립터블 오브젝트(ScriptableObject)는 에셋(Asset) 형태로 프로젝트 내에 존재하는 데이터이기 때문에, 이를 생성하려면 유니티의 에셋 생성 메뉴를 통해 새 스크립트를 만들어야 합니다.

유니티 6부터는 기존의 모노비헤이비어(MonoBehaviour) 스크립트 외에도, 스크립터블 오브젝트 전용 스크립트를 생성할 수 있는 메뉴가 별도로 제공됩니다.

다음 절차에 따라 새 스크립터블 오브젝트 스크립트를 생성할 수 있습니다:

  1. 상단 메뉴에서 Assets를 선택합니다.
  2. Create > Scripting 메뉴로 이동합니다.
  3. 유니티 6를 사용하고 있다면, 이 메뉴 안에 ScriptableObject Script라는 항목이 별도로 표시되는 것을 확인할 수 있습니다.

image.png

스크립트 파일 생성 및 이름 변경

새로운 스크립터블 오브젝트(ScriptableObject) 스크립트 파일이 생성되었다면, 이 파일의 이름을 PersonalData로 변경합니다.

그리고 이 스크립트를 더블 클릭하여 열어보면, 다음과 같은 코드가 기본으로 생성되어 있을 것입니다.

using UnityEngine;

[CreateAssetMenu(fileName = "PersonalData", menuName = "Scriptable Objects/PersonalData")]
public class PersonalData : ScriptableObject
{

}

CreateAssetMenu 어트리뷰트(Attribute)

스크립트 파일의 내용을 살펴보면, 클래스 정의 위에 [CreateAssetMenu] 어트리뷰트(Attribute)가 선언되어 있는 것을 확인할 수 있습니다.

[CreateAssetMenu(fileName = "PersonalData", menuName = "Scriptable Objects/PersonalData")]

이 어트리뷰트는 스크립터블 오브젝트(ScriptableObject) 에셋을 유니티 에디터의 메뉴에서 직접 생성할 수 있도록 해주는 기능을 담당합니다.

이때, [CreateAssetMenu] 어트리뷰트에는 몇 가지 속성이 함께 정의되어 있습니다.

먼저 fileName 항목에는 "PersonalData"라는 값이 지정되어 있을 것입니다. 이 값은 에셋을 생성할 때 기본으로 제시되는 파일 이름입니다.

[CreateAssetMenu(**fileName = "PersonalData"**, menuName = "Scriptable Objects/PersonalData")]

그 옆에 있는 menuName 항목은 이 스크립터블 오브젝트 에셋이 유니티 상단의 Assets > Create 메뉴 내에서 어떤 경로로 표시될지를 지정합니다.