Unity 게임개발 입문 - Scriptable Object

오도독·2024년 5월 9일

내배캠

목록 보기
18/26
post-thumbnail

Scriptable Object란?

스크립터블 오브젝트는 유니티에서 데이터를 저장하는데 사용할 수 있는 데이터 컨테이너에요.
하나의 스크립터블 오브젝트를 여러 게임 오브젝트에서 참조형식으로 데이터를 사용하여 값의 복제를 피해 메모리 소비를 줄일때 유용하고, 재사용성을 높여줘요.
코드와 데이터를 분리하여 코드를 더 깔끔하고 관리하기 쉽게 만들 수 있는데,

보이는 것과 같이 스크립트에서 데이터를 선언해주고 유니티 인스펙터 창에서 직접 수정하고 관리할 수 있어요.

사용 방법

[CreateAssetMenu (fileName = "DefaultAttackSO", menuName = "TopDownController/Attacks/Default", order = 0)]
public class AttackSO : ScriptableObject
{
    [Header("Attack Info")]
    public float size;
    public float delay;
    public float power;
    public float speed;
    public LayerMask target;

    [Header("Knock Back Info")]
    public bool isOnKcockBack;
    public float knockBackPower;
    public float KnockBackTime;
}

우선 스크립트를 먼저 만들어줘요.
스크립터블 오브젝트는 MonoBehaviour 가 아니라 ScriptableObject 를 상속받아요.

[CreateAssetMenu] 는 커스텀 에셋을 생성할 수 있도록 해주는 것인데 파일이름, 메뉴 트리, 메뉴 순번을 지정할 수 있어요.

위 스크립트에 보이는 것처럼 지정하면 유니티에서 지정해준 메뉴 트리대로 오브젝트 생성창이 생겨요!

오브젝트를 만들어주고 데이터 값을 설정해줍니다.


만든 오브젝트를 다른 게임 오브젝트에서 사용하시면 됩니다.


0개의 댓글