NGUI-五种点击事件实现方式及在3d场景中点透的情况
2014-08-27 18:41
519 查看
Unity3D引擎交流QQ群:【21568554】
ngui作为unity界面插件之一中,无疑是最好用,使用最多的了从自学unity到现在界面一直使用它
由于它的持续更新,我在此不得不说,确实很为开发者作想,为什么这么讲呢?
大概在去年吧 当时用的那个版本已经不记得了,
反正就是有个需求,要实现“无限循环”拖动,使用过以前ngui的人就知道当时是没有这个功能的,
后来被自己弄出来没几天,就发现新版本中就自带了这样的东西,
也就是如今ngui列子中的 Endless Scroll Views,
当时,记得好像还心里暗骂了“坑爹”。
好啦,可能稍微有些偏题了,现在进入正题:
ngui点击事件我在此分为5种不同写法来总结
一.OnClick
OnClick作为传统的单击事件,其实真心好用,
直接
[C#] 纯文本查看 复制代码
?
不管你是界面按钮 还是3d物体对象(需要加BoxCollider)都可用
可是,太麻烦,不好管理。
二.SendMessage
1.SendMessage是属于Ngui老版本的一种事件实现方式了,在此就简单说下了
Target:接收按钮消息的游戏对象。
Function Name:接收按钮消息的方法,拥有这个方法的脚本必须绑定在上面Target对象身上。
Trigger:触发的事件。
Include Children :是否让该对象的所有子对象也发送这个点击事件。
缺点:不直观,太多拖动操作,效率略低
三.通过UIButton属性面板附加事件
首先,在代码中写你要做的事情,
如:
[C#] 纯文本查看 复制代码
?
然后,拖动绑该代码定到场景任意对象上,
最后,选择你要点击的按钮,把刚才绑定代码的对象拖到,UIButton属性中的On Click中的Notify上,接着在Method中选择刚写的脚本里的方法就可以了
如图:
此方法个人感觉是SendMessage的升级版,比以前更加直观易懂,适用于刚接触Ngui的人学习使用。
缺点:效率略低,不可用于3d物体 如:Cube
四..Event Listener(推荐)
Event Listener选择要挂载的按钮,在Unity导航菜单栏中选择Component->NGUI->Internal ->Event Listener就可以了
代码写法有2种:
?
方便统一管理,效率不错。
五.EventDelegate(推荐)
代码更加简单
方便统一管理,可以单独创建一个事件管理脚本,直接操作管理
效率不错,不需要加载拖动其他额外的东西.
?
代码写好后,拖动绑该代码定到场景任意对象上,同时赋对应button上去就可以了
好啦,ngui五种点击事件处理方式总结到此结束,至于怎么用,那么大家自己取舍咯
若有不足,欢迎指正
=====================分割线================
另附加: 解决ngui在3d场景中 点透的情况
大家做游戏可能遇到 点击地面玩家行走,可是点击界面按钮的时候,事件触发不了,或者同时执行了玩家点地行走事件,
这些都属于点透的情况。
目前据自己经验有2种解决方案
如:
[C#] 纯文本查看 复制代码
?
代表的意思是如果鼠标下面有NGUI物体就执行
2.通过射线来检测
[C#] 纯文本查看 复制代码
?
代表的意思是判断在UI界面层操作.
ngui作为unity界面插件之一中,无疑是最好用,使用最多的了从自学unity到现在界面一直使用它
由于它的持续更新,我在此不得不说,确实很为开发者作想,为什么这么讲呢?
大概在去年吧 当时用的那个版本已经不记得了,
反正就是有个需求,要实现“无限循环”拖动,使用过以前ngui的人就知道当时是没有这个功能的,
后来被自己弄出来没几天,就发现新版本中就自带了这样的东西,
也就是如今ngui列子中的 Endless Scroll Views,
当时,记得好像还心里暗骂了“坑爹”。
好啦,可能稍微有些偏题了,现在进入正题:
ngui点击事件我在此分为5种不同写法来总结
一.OnClick
OnClick作为传统的单击事件,其实真心好用,
直接
[C#] 纯文本查看 复制代码
?
可是,太麻烦,不好管理。
二.SendMessage
1.SendMessage是属于Ngui老版本的一种事件实现方式了,在此就简单说下了
Target:接收按钮消息的游戏对象。
Function Name:接收按钮消息的方法,拥有这个方法的脚本必须绑定在上面Target对象身上。
Trigger:触发的事件。
Include Children :是否让该对象的所有子对象也发送这个点击事件。
缺点:不直观,太多拖动操作,效率略低
三.通过UIButton属性面板附加事件
首先,在代码中写你要做的事情,
如:
[C#] 纯文本查看 复制代码
?
最后,选择你要点击的按钮,把刚才绑定代码的对象拖到,UIButton属性中的On Click中的Notify上,接着在Method中选择刚写的脚本里的方法就可以了
如图:
此方法个人感觉是SendMessage的升级版,比以前更加直观易懂,适用于刚接触Ngui的人学习使用。
缺点:效率略低,不可用于3d物体 如:Cube
四..Event Listener(推荐)
Event Listener选择要挂载的按钮,在Unity导航菜单栏中选择Component->NGUI->Internal ->Event Listener就可以了
代码写法有2种:
本帖隐藏的内容
[C#] 纯文本查看 复制代码?
五.EventDelegate(推荐)
代码更加简单
方便统一管理,可以单独创建一个事件管理脚本,直接操作管理
效率不错,不需要加载拖动其他额外的东西.
本帖隐藏的内容
[C#] 纯文本查看 复制代码?
好啦,ngui五种点击事件处理方式总结到此结束,至于怎么用,那么大家自己取舍咯
若有不足,欢迎指正
=====================分割线================
另附加: 解决ngui在3d场景中 点透的情况
大家做游戏可能遇到 点击地面玩家行走,可是点击界面按钮的时候,事件触发不了,或者同时执行了玩家点地行走事件,
这些都属于点透的情况。
目前据自己经验有2种解决方案
本帖隐藏的内容
1.在ngui事件代码中做一个判断如:
[C#] 纯文本查看 复制代码
?
2.通过射线来检测
[C#] 纯文本查看 复制代码
?
相关文章推荐
- Ngui 五种点击事件实现方式及在3d场景中点透的情况
- Ngui 五种点击事件实现方式及在3d场景中点透的情况
- Unity3D之NGUI的5种点击事件的实现方式及在3D场景中点透的情况
- Ngui 五种点击事件实现方式及在3d场景中点击穿透的情况
- Ngui 五种点击事件实现方式及在3d场景点透事件
- Ngui 五种点击事件实现方式
- RecyclerView点击事件OnItemClick的两种实现方式
- 三种方式实现按钮的点击事件
- 安卓笔记android中控件点击事件实现的几种方式
- 按钮点击事件的实现方式---原生js
- ListView使用自定义适配器的情况下实现适配器的文本和图标控件点击事件执行Activity界面中的方法
- Android点击事件的四种实现方式
- 点击事件中实现弹出一个选择框(如选择网络设置、选择电话短信联系方式)
- 练习用内部类方式设置点击事件来实现直接拨打电话功能
- 按钮点击事件的实现方式---JQuery
- Button点击事件的三种实现方式
- Android-学习笔记之 Button实现点击事件的几种方式
- 2种方式实现ListView中中每一项下的任意控件的点击事件
- NGUI点击按钮时如何屏蔽场景鼠标事件
- Android为按钮控件绑定事件的五种实现方式