Type Object Pattern의 정의
유사한 기능을 가진 여러 객체들이 특정 유형 객체를 참조하여 공통된 특성을 공유할 수 있도록 하는 것이다.
사용 예시
[CreateAssetMenu (menuName ="MonsterData")]
public class Monster : ScriptableObject
{
public int curHp;
public int maxHp;
public float moveSpeed;
public float attackSPeed;
public string name;
}
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();
}
}
언제 유용하게 쓸 수 있는가?
- 상속을 쓰기 어려운 상황일때, 가령 동물 게임을 만드는데 생선, 새 등을 분류하는데에서 2번 예시를 활용 할 것이다
- 1번 예시와 같이 데이터가 공통적으로 들어있을때 => 기획자와 업무 분담을 위함