NGUI中UICamera的EventType详解
来源:互联网 发布:蚁群算法应用 编辑:程序博客网 时间:2024/05/16 16:08
NGUI版本:3.10.2
实践中遇到的问题
新建一个空工程,拖动一个Colored Button到场景中,此时是可以点的。
如果将UICamera的Event Type改为2D UI或2D World,则之前那个Colored Button变成不可以点了。
疑问
- 这个Colored Button不应该是2D的吗?所以EventType应该是2D UI才合理啊。
- UICamera的EventType为啥默认是3D World而不是2D UI呢?
- 怎样设置会比较合理?
原理分析
首先说明,Event Type这个命名是容易让人误解的。UICamera中响应触摸或者鼠标事件的中心,按理说Event Type应该是指点击、拖动什么的,但是实际上这个Event Type是指事件响应对象查找方式。分别有4种:
enum EventType{ World_3D, // 使用Physics.Raycast查找响应对象,并选择距点点距离最近的 UI_3D, // 使用Physics.Raycast查找对象,并选择Depth最大的 World_2D, // 使用Physics2D.OverlapPoint查找对象,并选择最前面的 UI_2D, // 使用Physics2D.OverlapPoint查找对象,并选择Depth最大的}
其次,那个Colored Button有个Component是Box Collider,可以被Physics.Raycast所找到,而不会被Physics2D.OverlapPoint找到。
答案揭晓
这个Colored Button不应该是2D的吗?所以EventType应该是2D UI才合理啊。
NGUI默认的Colored Button对于UICamera来说并不是2D的,而是一个3D的Box Collider。
UICamera的EventType为啥默认是3D World而不是2D UI呢?
这样设置让2D和3D都可以用,使用上更加方便。
怎样设置会比较合理?
因为Physics.Raycast比Physics2D.OverlapPoint的计算量要大得多,如果是只用到2D特性的话,将UICamera.EventType设置为2D的并将控件的Box Collider替换成Box Collider 2D。
1 0
- NGUI中UICamera的EventType详解
- NGUI的坑:UICamera类的EventType不要选择错了
- NGUI的核心组件UICamera
- NGUI -- UICamera
- NGUI--UICamera
- NGUI:UICamera
- NGUI UICamera属性介绍
- 【Unity3D】【NGUI】UICamera
- 【Unity3D】【NGUI】UICamera
- NGUI所见即所得--UICamera
- NGUI所见即所得之UICamera
- NGUI之UICamera
- NGUI所见即所得之UICamera
- Unity NGUI UICamera总结
- NGUI所见即所得之UICamera
- NGUI的事件通知架构和源码剖析--UICamera
- NGUI核心组件之UICamera
- NGUI核心组件之UICamera
- DVD项目
- 67. Add Binary
- jquery实现复选框(checkbox)的全选与反选
- 206. Reverse Linked List 链表
- Unity StrangeIoC框架
- NGUI中UICamera的EventType详解
- Programming In Scala笔记-第十一章、Scala中的类继承关系
- 【考研日记】:快乐学习法
- Java开发中的23种设计模式详解
- 3D全景!这么牛!!
- Pull解析
- 使用Netty搭建的服务端,主要用于文件处理和json处理
- AutoHotKey 的使用 —— 使用键盘调节 windows 声音
- Multiload-ng