/// <summary> /// 初始化已装备物品面板 /// </summary> public void SetUpEquipedEquipmentsPlane() { for (int i = 0; i < player.allEquipedEquipments.Length; i++) { Transform equipedEquipmentButton = allEquipedEquipmentButtons[i]; Equipment equipment = player.allEquipedEquipments[i]; bool equipmentSlotUnlocked = true; // 如果是第6个装备槽,首先检查是否已经购买解锁 if (i == 6) { equipmentSlotUnlocked = BuyRecord.Instance.extraEquipmentSlotUnlocked; } // 根据装备和解锁情况显示装备槽 equipedEquipmentButton.GetComponent <EquipedEquipmentCell>().SetUpEquipedEquipmentCell(equipment, equipmentSlotUnlocked); //初始化装备槽上的拖拽组件 EquipedItemDragControl equipedItemDragControl = equipedEquipmentButton.GetComponent <EquipedItemDragControl>(); equipedItemDragControl.SetUpEquipedItemDragControl(equipment); } }
protected override void OnUserDrop(PointerEventData eventData) { GameObject draggedObject = GetDraggedObject(eventData); // 获取拖拽物体中的物品信息 Item draggedItem = GetDraggedItem(eventData); // 如果拖拽游戏图中没有物品 if (draggedItem == null) { SetDropResult(eventData, false); tintImage.enabled = false; return; } // 如果拖拽中的物品类型不对 if (!CheckDraggedItemValid(draggedItem)) { SetDropResult(eventData, false); tintImage.enabled = false; return; } //bagCanvas.GetComponent<BagViewController>().itemForSpecialOperation = draggedItem; // 装备面板内的装备 if (draggedObject.GetComponent <EquipedItemDragControl> () != null) { EquipedItemDragControl dc = draggedObject.GetComponent <EquipedItemDragControl> (); soDragControl.itemImage.sprite = dc.itemImage.sprite; soDragControl.itemImage.enabled = true; soDragControl.item = draggedItem; SetDropResult(eventData, true); } //从背包内拖拽出得物品 else if (draggedObject.GetComponent <ItemInBagDragControl> () != null) { ItemInBagDragControl dc = draggedObject.GetComponent <ItemInBagDragControl> (); soDragControl.itemImage.sprite = dc.itemImage.sprite; soDragControl.itemImage.enabled = true; if (draggedItem.itemType == ItemType.Equipment) { soDragControl.item = draggedItem; } else { soDragControl.item = Item.NewItemWith(draggedItem.itemId, 1); } SetDropResult(eventData, true); } if (dropSucceedCallBack != null) { dropSucceedCallBack(draggedItem); } tintImage.enabled = false; }