Exemplo n.º 1
0
 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();
             }
         }
     }
 }
Exemplo n.º 2
0
    /// <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();
                }
            }
        }
    }