Inventory2

Jihyun·2023년 12월 19일
0

Unity 2D

목록 보기
9/10
post-thumbnail

아이템 타입 별로 다른 인벤토리에 저장하기

아이템 타입 만들기

  1. ScriptableObject 클래스에 아이템 타입 만들기
    아이템에는 재료 아이템과 장비할 수 있는 아이템으로 나뉜다
public enum ItemType
{
    Material,
    Equipment,
}

public ItemType itemType
  1. Scriptable 클래스를 상속하는 스크립트 작성
    장비 아이템에 대한 클래스
    장비 아이템은 4가지 타입이 있다
public enum EquipmentType
{
    Weapon,
    Armor,
    Amulet,
    Flask
}

[CreateAssetMenu(fileName = "New Item Data", menuName = "Data/Equipment")]
public class ItemData_Equipment : ItemData
{
    public EquipmentType equipmentType;
    
}
  1. Equipment 타입의 아이뎀 데이터 생성

    ItemData_Equipment는 아이템 중 Equipment 타입의 아이템을 관리하는 클래스이며 장비 아이템 중 어떤 타입을 가지는지 설정하는 클래스이다

타입에 따라 서로 다른 인벤토리에 저장하기

  • Inventory는 Equipment 타입 아이템을 저장한다
  • Stash는 Material 타입 아이템을 저장한다
  1. 재료 아이템을 저장하는 인벤토리 창(stash)에 대한 필드 생성과 초기화 작업
private void Start()
{     
        stash = new List<InventoryItem>();
        stashDictionary = new Dictionary<ItemData, InventoryItem>();       
        stashItemSlot = stashSlotParent.GetComponentsInChildren<UI_ItemSlot>();
}

private void UpdatSlotUI()
{  
        for(int i = 0; i < stash.Count; i++)
        {
            stashItemSlot[i].UpdateSlot(stash[i]);
        }
}
  1. 아이템 타입 별로 인벤토리 또는 스태시에 추가, 삭제 작업
public void AddItem(ItemData _item)
{
        if (_item.itemType == ItemType.Equipment)
        {
            AddToInventory(_item);

        }
        else if(_item.itemType == ItemType.Material)
        {
            AddToStash(_item);
        }

        UpdatSlotUI();
}
 
profile
잊어버려도 다시 리마인드 할 수 있도록 공부한 것을 기록합니다

0개의 댓글