유니티

아이템 정보 만들기 (ScriptableObject)

잼잼재미 2023. 12. 14. 16:18

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