[Unity] ScriptableObject

PIAZZI·2024년 5월 27일
0

Unity

목록 보기
7/9
post-thumbnail

ScriptableObject

  • 클래스 인스턴스와는 별도로 대량의 데이터를 저장할 수 있는 데이터 컨테이너
  • 주로 값의 사본이 생성되는 것을 방지하여 메모리의 사용을 줄일 때 사용된다.
  • prefab에 유용하게 사용된다.

일반 스크립트를 데이터 저장용으로 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인 에셋 메뉴를 생성할 수 있다.

profile
범부에오

0개의 댓글