NGUI的拖拽和放下功能的制作,简易背包系统功能(drag and drop item)
一我们添加sprite,给sprite添加背景图片和添加box collider,但是drag and drop item在attach中是找不到的只能在add component中查找添加,如下图:
这时生成一个这样的脚本
二,现在只能识别拖的功能,我们该怎么监听放下的功能呢?
1》我们添加一个脚本MayDragDropItem继承UIDragDropItem,将当前这个自动生成的删除,如下图:
using UnityEngine; using System.Collections; public class MayDragDropItem : UIDragDropItem { }
2》继承重新编译之后,我们看看跟之前那个区别
当继承之后,两者的属性的一样的,这时我们可以删除上面那个了,保留我们自己添加的那个MayDragDropItem
3》现在我们要获取拖拽之后放下到那个游戏物体该怎么写呢?
1》拖拽获取的是碰撞,游戏物体的碰撞我们都需要添加一个box collider,我们添加一个sprite当做存放装备的空格,然后添加一个box collider,然后重写UIDragDropItem的OnDragDropRelease方法,如下代码:
using UnityEngine; using System.Collections; public class MayDragDropItem : UIDragDropItem { protected override void OnDragDropRelease(GameObject surface) { base.OnDragDropRelease(surface); //进行我们的处理代码 print(surface); } }
我们运行游戏将物体拖拽到空格,就可以获取到空格这个游戏物体,可以输出surface,就知道