[置顶] Unity基于NGUI实现拖拽功能
2016-03-01 21:48
1251 查看
在游戏中,我们在游戏物品中经常要拖拽物体,例如将物品放在另一个物品栏中或者将装备穿在人物上,这时我们就要用拖拽来完成。
在NGUI 中有一个叫UIDragDropItem的脚本,我们用这个脚本来实现。
public class InventoryItem : UIDragDropItem {
//当拖拽结束的时候调用这个方法,参数表示当拖拽结束时鼠标下的物体,物体上必须有collider才可以
protected override void OnDragDropRelease(GameObject surface)
{
base.OnDragDropRelease(surface);
//当鼠标触发到物体时
if(surface!=null)
{
//表示鼠标下有物体
1:当拖放到一个有物品的方格中,交换两个物品
2:当拖放到一个空物品的方格中(判断是不是原有的物品栏,true则重置物品位置,false则将物品放入新物品栏并将原来的清除)
}
else //没有触碰到
{
//重置位置
}
}
在这里注意一下,不要在这个类里使用Start()方法,如果要使用,则在Start()方法中调用基类的base.Start()。
在NGUI 中有一个叫UIDragDropItem的脚本,我们用这个脚本来实现。
public class InventoryItem : UIDragDropItem {
//当拖拽结束的时候调用这个方法,参数表示当拖拽结束时鼠标下的物体,物体上必须有collider才可以
protected override void OnDragDropRelease(GameObject surface)
{
base.OnDragDropRelease(surface);
//当鼠标触发到物体时
if(surface!=null)
{
//表示鼠标下有物体
1:当拖放到一个有物品的方格中,交换两个物品
2:当拖放到一个空物品的方格中(判断是不是原有的物品栏,true则重置物品位置,false则将物品放入新物品栏并将原来的清除)
}
else //没有触碰到
{
//重置位置
}
}
在这里注意一下,不要在这个类里使用Start()方法,如果要使用,则在Start()方法中调用基类的base.Start()。
相关文章推荐
- Unity学习笔记——利用脚本实现对一个物体的第三人称观察
- unitywebgl发展计划
- 解决Unity3d 图片黑边问题
- Unity如何在Editor下执行协程(coroutine)
- Angry Birds Clone in Unity 3D (source code included)
- MouseFollowRotation Unity3d鼠标点击旋转相机
- Unity 基础
- Unity3D 优化之路(一):DrawCall
- Unity3d 解析文本执行已注册的自定函数
- unity3d,android平台下,高德地图定位
- Unity3D学习笔记(2)——用GUI制作井字棋游戏
- unity中的几个坑
- unity 切圆角矩形 --shader编程
- unity中的Transform类
- unity实现玻璃效果
- unity实现玻璃效果
- unity中的WWW通讯问题
- [Unity2d系列教程] 005.Unity如何使用外部触控插件FingerGuesture
- unity中事件分发系统 EventDispatcher
- Unity3D教程宝典之Shader篇 基本知识