ScriptableObject
- 유니티에서 제공하는 대량의 데이터를 저장하는데 사용하는 데이터 컨테이너
- 데이터 컨테이너로 데이터를 공유할 수 있고, 이를 통해 메모리 사용량 줄일 수 있음
설정 방법
스크립트 작성
ItemData (부모 클래스)
[CreateAssetMenu(fileName = "ItemData_", menuName = "Data/ItemData", order = 0)]
public class ItemData : ScriptableObject
{
public string ItemName;
public string Description;
public int Price;
public bool IsEquiped;
public Sprite IconImage;
}
WeaponData (자식 클래스)
[CreateAssetMenu(fileName = "WeaponData_", menuName = "Data/WeaponData", order = 2)]
public class WeaponData : ItemData
{
public int Atk;
public GameObject WeaponPrefab;
}
ArmorData (자식 클래스)
[CreateAssetMenu(fileName = "ArmorData_", menuName = "Data/ArmorData", order = 3)]
public class ArmorData : ItemData
{
public int Def;
public int Hp;
public GameObject ArmorPrefab;
}
InventoryData
[CreateAssetMenu(fileName = "InventoryData_", menuName = "Data/InventoryData", order = 0)]
public class InventoryData : ScriptableObject
{
// 내가 보유 중인 아이템 정보
public ItemData[] myItems;
}
WeaponData, ArmorData 생성
인스펙터창에 정보 입력
InventoryData 생성 (보유 중인 Item, My Items에 추가)
'유니티' 카테고리의 다른 글
인벤토리 만들기 (0) | 2023.12.14 |
---|---|
AI Navigation (0) | 2023.12.14 |
인벤토리 스크롤 설정 (Scroll View, Grid Layout Group) (0) | 2023.12.14 |
3D 1인칭 이동 구현 (Input System) (0) | 2023.12.14 |
Rect Transform (앵커, 피봇) (0) | 2023.12.13 |