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;
    }