public void UnequipWeapon(WeaponSO item) { if (inventory.CanAddItem(item)) { if (weaponPanel.RemoveItem(item)) { item.Unequip(this, weaponPanel); // Remove Weapon item Stat inventory.AddItem(item); } } }
void SwapItem(BaseItemSlot _itemSlot) { //as = 만약 A = B as A라면 B를 A로 형변환하고, 아니면 null값을 준다 WeaponSO dragWeaponItem = dragItemSlot.Item as WeaponSO; WeaponSO dropWeaponItem = _itemSlot.Item as WeaponSO; // dragWeapon = 처음 drag를 시작한 슬롯에 있던 아이템 // dropWeapon = drag를 끝내고 drop할려는 슬롯에 있는 아이템 if (_itemSlot is WeaponSlot) // 드롭한 곳이 무기슬롯일 때 { if (dragWeaponItem != null) { dragWeaponItem.Equip(this, weaponPanel); } if (dropWeaponItem != null) { dropWeaponItem.Unequip(this, weaponPanel); } } if (dragItemSlot is WeaponSlot) // 드래그한 곳이 무기슬롯 일 때 { if (dragWeaponItem != null) { dragWeaponItem.Unequip(this, weaponPanel); } if (dropWeaponItem != null) { dropWeaponItem.Equip(this, weaponPanel); } } // 인벤토리나 무기창 아무상관 없이 아이템을 swap & drop하게 해줌 ItemSO draggedItem = _itemSlot.Item; int draggedItemAmount = dragItemSlot.Amount; _itemSlot.Item = dragItemSlot.Item; dragItemSlot.Amount = _itemSlot.Amount; dragItemSlot.Item = draggedItem; _itemSlot.Amount = draggedItemAmount; }