//点下物品格 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); }