내일배움캠프_TIL
9월 26일 TIL
skybluesky
2023. 9. 26. 20:57
스크립터블 오브젝트
유니티에서 제공하는 데이터 컨테이너
값의 사본이 생성되는 것을 방지하여 프로젝트의 메모리 사용을 줄일 수 있다
변경되지 않는 데이터를 사용하는 프리팹에 유용함
모노비헤이비어를 사용하는 일반 스크립트와 달리 오브젝트에 컴포넌트로 부착이 불가능
using UnityEngine;
[CreateAssetMenu(fileName = "Zombie Data", menuName = "Scriptable Object/Zombie Data", order = int.MaxValue)]
public class ZombieData : ScriptableObject
{
[SerializeField]
private string zombieName;
public string ZombieName { get { return zombieName; } }
[SerializeField]
private int hp;
public int Hp { get { return hp; } }
[SerializeField]
private int damage;
public int Damage { get { return damage; } }
[SerializeField]
private float sightRange;
public float SightRange { get { return sightRange; } }
[SerializeField]
private float moveSpeed;
public float MoveSpeed { get { return moveSpeed; } }
}
CreateAssetMenu 속성은 스크립터블 오브젝트 스크립트를 이용해서 빠르고 쉽게 에셋을 생성할 수 있게 만들어주는 속성이다.
코드를 빌드하고 에디터로 돌아가서 Assets 메뉴를 보면 추가한 menuName 대로 Create>Scriptable Object>Zombie Data 항목이 새로 생긴 것을 볼 수 있다.