ScriptableObject(스크립터블 오브젝트) 'SO' 라고도 부르는 이것은 대량의 데이터를 저장하고 사용하는
데이터 컨테이너이다.
SO를 사용하면 데이터의 값이 복제되는 일을 방지하여 메모리 관리에도 용이하게 쓰인다.
변경되지 않는 데이터를 사용하는 프리팹의 데이터를 일반 변수로 구현할 경우 인스턴스화 할때마다 프리팹에
이 데이터의 사본이 생성되는데 SO를 사용하면 메모리에 SO의 데이터 사본만을 저장하고 이를 참조하는
방식으로 작동한다고 한다.
SO 클래스는 유니티에서 기본적으로 제공하는 것으로 모노비헤이비어 클래스와 마찬가지로 기본 유니티
오브젝트에서 파생되지만 게임오브젝트에 컴포넌트로 부착할 수 없고 프로젝트에 에셋으로 저장된다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(fileName = "DefaultStatusData", menuName = "SpartaDungeon2D/Status/Default", order = 0)]
public class StatusSO : ScriptableObject // MonoBehaviour 대신 ScriptableObject를 써서 사용
{
[Header("Status Info")]
public float manPower;
public float improvisation;
public float health;
public float speech;
public LayerMask target;
}
반응형
'Today I Learned' 카테고리의 다른 글
[내일배움캠프] Unity 게임 개발 숙련 - 개인과제 마무리(해설) (0) | 2023.12.14 |
---|---|
[내일배움캠프] Unity 게임 개발 숙련 - ScriptableObject(2) (0) | 2023.12.13 |
[내일배움캠프] Unity 게임 개발 숙련 - 2D던전입장준비 만들기 (0) | 2023.12.11 |
[내일배움캠프] Unity 게임 개발 숙련 - 오브젝트 풀 (2) | 2023.12.08 |
[내일배움캠프] Unity 게임 개발 입문 - 마무리 (깃허브 리드미 전문) (1) | 2023.12.07 |