public bool IsEmpty() { if (itemOnSlot == null) { itemOnSlot = GetComponentInChildren <ItemOnSlot>(); } return(itemOnSlot.IsEmpty()); }
public void Swap(ItemOnSlot target) { Item targetItem = target.Holder; int count = target.Count; target.Holder = Holder; target.Count = Count; Holder = targetItem; Count = count; }
private void Awake() { itemOnSlot = GetComponentInChildren <ItemOnSlot>(); }
public void OnEndDrag(PointerEventData eventData) { transform.SetParent(parentTransform); icon.transform.position = parentTransform.transform.position; Slot slot = eventData.pointerCurrentRaycast.gameObject.GetComponentInParent <Slot>(); //交换slot 位置 if (slot != null) { ItemOnSlot target = slot.itemOnSlot; Slot slotSource = GetComponentInParent <Slot>(); InventoryType thisSlotType = GetComponentInParent <Slot>().GetInventoryType(); InventoryType targetSlotType = slot.GetInventoryType(); InventorySlotsManager ismSource = GetComponentInParent <Slot>().GetInventorySlotsManager(); InventorySlotsManager ismDest = slot.GetInventorySlotsManager(); int newIndex = target.transform.GetSiblingIndex(); int oldIndex = parentTransform.GetSiblingIndex(); //同槽内的交换 if (thisSlotType == targetSlotType) { Swap(target); } //从其他槽拖拽消耗品到QuickUse else if (item.GetItemType() == ItemType.Consumable && targetSlotType == InventoryType.QuickUseSlots) { ismDest.inventoryUI.im.AddQuickUse(item.GetID(), slot.GetIndex()); ismDest.inventoryUI.allItemPos.Remove(item); slotSource.Clear(); //清楚消耗品索引 } //拖着装备Item else if (item.GetItemType() == ItemType.Weapon && targetSlotType == InventoryType.RWeaponsSlots) { ismDest.inventoryUI.im.am.wm.EquipWeapon((WeaponItem)item, slot.GetIndex(), true); ismDest.inventoryUI.allItemPos.Remove(item); slotSource.Clear(); } else if (item.GetItemType() == ItemType.Weapon && targetSlotType == InventoryType.LWeaponsSlots) { ismDest.inventoryUI.im.am.wm.EquipWeapon((WeaponItem)item, slot.GetIndex(), false); ismDest.inventoryUI.allItemPos.Remove(item); slotSource.Clear(); } // InventoryUI inventoryUI = GetComponentInParent<Slot>().gameObject.GetComponentInParent<InventoryUI>(); // if (inventoryUI.allItemToggle.isOn) // { // inventoryUI.SwapPos(inventoryUI.allItemPos,target.itemOnSlot.Holder,item,newIndex,oldIndex); // } // else if (inventoryUI.weaponToggle.isOn) // { // inventoryUI.SwapPos(inventoryUI.weaponItemPos,target.itemOnSlot.Holder,item,newIndex,oldIndex); // } } GetComponent <CanvasGroup>().blocksRaycasts = true; }