Type Object

순후추·2023년 10월 23일
1

디자인패턴

목록 보기
2/11

Type Object Pattern의 정의

유사한 기능을 가진 여러 객체들이 특정 유형 객체를 참조하여 공통된 특성을 공유할 수 있도록 하는 것이다.

사용 예시

1. CreateAssetMenu이용하기

[CreateAssetMenu (menuName ="MonsterData")]
public class Monster : ScriptableObject
{
    public int curHp;
    public int maxHp;
    public float moveSpeed;
    public float attackSPeed;
    public string name;
}


2. 클래스 생성자 이용하기

public class ItemType {
    public string itemName;
    public int itemID;

    public ItemType(string itemName, int itemID) {
        this.itemName = itemName;
        this.itemID = itemID;
    }
}

public class Item {
    public ItemType type;
    public string itemName;

    public Item(string itemName, ItemType type) {
        this.itemName = itemName;
        this.type = type;
    }

    public void Use() {
        Debug.Log($"Using {itemName} (ID: {type.itemID})");
    }
}

public class ItemManager : MonoBehaviour {
    public ItemType swordType = new ItemType("Sword", 1);
    public ItemType potionType = new ItemType("Health Potion", 2);

    void Start() {
        // 아이템 생성
        Item sword = new Item("Iron Sword", swordType);
        Item potion = new Item("Healing Elixir", potionType);

        // 아이템 사용
        sword.Use();
        potion.Use();
    }
}

언제 유용하게 쓸 수 있는가?

  1. 상속을 쓰기 어려운 상황일때, 가령 동물 게임을 만드는데 생선, 새 등을 분류하는데에서 2번 예시를 활용 할 것이다
  2. 1번 예시와 같이 데이터가 공통적으로 들어있을때 => 기획자와 업무 분담을 위함
profile
게임 개발 블로그

0개의 댓글