1.要实现在菜单格子里拖拽物品如图。
2.有物品的格子之间能够相互切换。
实现方法也有多种,第一种是通过射线检测,检测拿到格子的位置赋值,但是这个效率不是很高。
第二种是通过重写IDropHandler接口实现自带的方法OnDrop(PointerEventData evetData)这个方法在物品落下时调用。
代码:
Public Class Slot: MonoBehaviour{
public int slotID;//槽位ID
Inventory inv;//数据管理类
public void OnDrop(PointerEventData eventData){
var droppenItem = eventData.pointerDrag.GetComponent<ItemData> ()
//创建一个拖拽物体抽象类
if (inv.items [slotID].ID == -1) {
inv.items [droppenItem.slotIndex] = new Item ();
droppenItem.slotIndex = slotID;
inv.items [slotID] = droppenItem.item;
//进行赋值操作
} else if (droppenItem.slotIndex != slotID) {