센로그
[Unity] Scriptable Object (스크립터블 오브젝트) 본문
◆ Scriptable Object
Unity 에서 흔히 아는 MonoBehaviour을 상속하는 클래스는 동작을 구현하는 역할을 한다.
이외에도 ScriptableObject를 상속하는 클래스를 만들 수 있는데, 이는 데이터 컨테이너 역할을 한다.
◆ Scriptable Object 사용법
■ 생성
ScriptableObject의 인스턴스는 다음과 같이 에셋으로 저장해 사용할 수 있다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(fileName = "Apple Data", menuName = "Scriptable Object/Apple", order = int.MaxValue)]
public class Apple : ScriptableObject
{
[SerializeField]
private string appleName;
public string AppleName{get;}
[SerializeField]
private int energy;
public int Energy { get; }
}
이런 방식으로 데이터를 만들고 관리할 수 있다.
■ 사용
Apple형 객체를 만들어서 ScriptableObject 객체를 할당하면, 바로 접근 가능하다.
public class ApplePower : MonoBehaviour
{
public Apple apple;
void Start()
{
Debug.Log("apple power : "+apple.Energy);
}
}
이런 식으로 apple 객체를 만들고
할당하여 접근할 수 있다.
Apple Data의 에너지가 0 이므로
실행하면 0이 나온다.
참고) 다음 링크(https://drehzr.tistory.com/1501?category=362808)와 같이 싱글톤 형태로도 사용하는 듯 하다.
'게임 > Unity, C#' 카테고리의 다른 글
[Unity] UnityEvent (유니티 이벤트) (0) | 2023.07.03 |
---|---|
[C#] Delegate(대리자) - delegate, Func, Action, Predicate (0) | 2023.07.03 |
[Unity] 유니티 라이프사이클 (0) | 2023.06.30 |
[C#] Class vs Struct (0) | 2023.06.29 |
[C#] 프로퍼티(property) - get, set (0) | 2023.06.29 |
Comments