TIL(24-05-09) - ScriptableObject(SO)(Unity)

임재훈·2024년 5월 9일

Unity

목록 보기
7/20

ScriptableObject(SO)

  • SO는 클래스 인스턴스와는 별도로 대량의 데이터를 저장하는 데 사용할 수 있는 데이터 컨터이너다.
  • 값의 사본이 생성되는 것을 방지하여 프로젝트의 메모리 사용을 줄이는 장점이 있다.
  • 프리팹을 인스턴스화할 때마다 SO를 이용하여 데이터를 저장한 후 모든 프리팹의 레퍼런스를 통해 액세스할 수 있다. 즉, 메모리에 데이터 사본을 하나만 저장한다.
  • MonoBehaviour와는 달리 게임 오브젝트에 SO를 연결할 수 없다. 대신 프로젝트의 에셋으로 저장해야 한다.

사용법

  1. Assets 폴더에 스크립트 생성 후 ScriptableObject 클래서에서 상속하도록 해야 한다.
// 유니티 매뉴얼
using UnityEngine;

[CreateAssetMenu(fileName = "Data", menuName = "ScriptableObjects/SpawnManagerScriptableObject", order = 1)]
public class SpawnManagerScriptableObject : ScriptableObject
{
    public string prefabName;

    public int numberOfPrefabsToCreate;
    public Vector3[] spawnPoints;
}
  1. Assets > Create > ScriptableObjects > SpawnManagerScriptableObject 로 이동하여 SO의 인스턴스를 생성한다.

  2. Inspector 창에서 값을 수정한다.

profile
초심을 잃지 말자!

0개의 댓글