Exemple #1
0
    //点下物品格
    void OnItemMouseDown(UIItemSlot slot, PointerEventData eventData)
    {
        if (bindBag != null)
        {
            //获取背包内容
            ItemPackage itemPack = bindBag.itemPack;
            if (eventData.button == PointerEventData.InputButton.Left)
            {                                        // 左键
                if (Input.GetKey(KeyCode.LeftShift)) //按住shift,移动到垃圾箱
                {
                    Item itemInSlot = null;          //原来格子里的物品
                    itemInSlot = itemPack.TakeItem(slot.index);
                    if (itemInSlot != null)          //如果有物品,放入垃圾箱
                    {
                        bindBag.trash.PutItem(itemInSlot);
                    }
                }
                else
                {                               //没有按shift
                    MouseItem mouseItem = bindBag.mouseItem;
                    if (mouseItem.hasItem)      //鼠标拖拽有物品,放入格子
                    {
                        Item itemInSlot = null; //原来格子里的物品
                        itemPack.PutInItem(mouseItem.TakeItem(), slot.index, out itemInSlot);
                        //可以叠加或原来没有物品,则itemInSlot为null,不论是否null,放入鼠标即可
                        mouseItem.PutItem(itemInSlot);
                    }
                    else
                    { //鼠标没有物品,取出原来格子里的物品,放入鼠标即可
                        mouseItem.PutItem(itemPack.TakeItem(slot.index));
                    }
                }
            }
            else
            {                                               //右键,使用
                Item itemInSlot = null;                     //原来格子里的物品
                itemInSlot = itemPack.TakeItem(slot.index); //拿出来
                if (itemInSlot.Type.IsArmor)
                {                                           //护甲,装备上,饰品就放在第一个格子里
                    LocalPlayer localPlayer = Helper.FindLocalPlayer();
                    if (localPlayer != null)
                    {
                        Item preArmor = null;
                        localPlayer.equipment.PutOnArmor(itemInSlot, out preArmor); //穿上护甲
                        itemPack.PutInItem(preArmor, slot.index, out itemInSlot);   //脱下的护甲放入这个格子里
                    }
                }
            }
            Helper.ShowTips(itemPack.content[slot.index]);
        }

        Helper.MoveWndToFront(transform);
    }