public override void OnPointerDown(PointerEventData eventData) { if (eventData.button == PointerEventData.InputButton.Right) { //右键脱下装备 if (grid_item == null) { return; } if (Inventory.Instance.PutItemByID(grid_item.m_ID)) { m_PlayerInfoPanel.PutOff(grid_item); ResetGrid(); } } if (eventData.button == PointerEventData.InputButton.Left) { if (Inventory.Instance.isPicked) { if (IsRightGrid(Inventory.Instance.pickedItem.picked_Item)) { if (grid_item == null) { m_PlayerInfoPanel.PutOn(Inventory.Instance.pickedItem.picked_Item, this); //StoreItem(Inventory.Instance.pickedItem.picked_Item);//格子预制体搞错了 此方法不能用 SetItem(Inventory.Instance.pickedItem.picked_Item); Inventory.Instance.pickedItem.ResetItem(); } else { m_DressedItem = grid_item; m_PlayerInfoPanel.PutOn(Inventory.Instance.pickedItem.picked_Item, this); SetItem(Inventory.Instance.pickedItem.picked_Item); Inventory.Instance.pickedItem.ResetItem(); } } } else { if (grid_item != null) { m_PlayerInfoPanel.PutOff(grid_item); Inventory.Instance.pickedItem.SetItem(grid_item, current_count); ResetGrid(); } } } }
/// <summary> /// 鼠标点击 拖拽物品 /// 按照数量拿取东西TODO /// </summary>IPointerDownHandler /// <param name="eventData"></param> public virtual void OnPointerDown(PointerEventData eventData) { //点击右键进行装备的穿戴操作 if (eventData.button == PointerEventData.InputButton.Right) { //显示人物面板 UIController._instance.ShowPanel(UIPanelType.PlayerInfo); PlayerInfoPanel playerInfoPanel = UIController._instance.GetPanelGameObject("PlayerInfoPanel(Clone)").GetComponent <PlayerInfoPanel>(); //playerInfoPanel.GetPlayerEquipmentGridList(); if (grid_item != null && (grid_item is Equipment || grid_item is Weapon)) { //先找到合适的格子 //1、装备格子为空 穿上装备 清空当前个格子 //2、装备格子不为空 先把已经穿上的装备脱下(和当前格子互换) 再穿上装备 playerInfoPanel.PutOn(grid_item, this); } } if (eventData.button == PointerEventData.InputButton.Left) { if (Inventory.Instance.isPicked) {//鼠标上已经有物品 PickedItem picked_Item = Inventory.Instance.pickedItem; Item picked_item = picked_Item.picked_Item; int picked_count = picked_Item.PickedCount; if (grid_item != null) { //默认全部拿起 全部交换 Inventory.Instance.SetPickedItem(grid_item, current_count); grid_item = null; StoreItem(picked_item, picked_count); } else { StoreItem(picked_item, picked_count); Inventory.Instance.isPicked = false; Inventory.Instance.pickedItem.Hide(); } } else {//鼠标上没有物品 if (grid_item != null) { //Item picked_Item = Inventory.Instance.pickedItem.picked_Item; Inventory.Instance.SetPickedItem(grid_item, current_count); ResetGrid(); } } } }