Unity本身也自带了一个GUI系统,因此,点击GamObject--创建的Camera上,会默认附加上GUILayer,它是可以响应Unity本身的GUI事件的。
UICamera是一个非常重要的组件,只有将其附加在场景中的Camera上,才能将NGUI事件发送给述附加了UICamera脚本的Camera渲染所看到的场景中的游戏对象。
EventType:
UIMode----NGUI事件只会发给NGUI元素,并且响应事件的优先级是依据NGUI元素的Depth的;
WorldMode----NGUI事件将会发给场景中的所有物体,并且响应事件的优先级是依据场景中物体到该Camera之间的距离,越近越先响应;
因此,一般情况下,游戏场景中,需要一个UICamera负责UI对象;另外一个UICamera负责非UI对象。
EventMask:
事件遮罩,让我们可以限定哪层的游戏对象才能接受NGUI事件。
总结:UICamera的2个属性,可以帮助我们指定游戏场景中的哪些物体才能响应事件!
UICamera会发送如下列举的事件给场景中的附有Collider的游戏对象:
从中可以看出,只有附加了Collider的对象才能响应事件,而且用户之所以能够通过这些事件与游戏场景中的对象进行互动,最本质的原理是:射线碰撞检测!另外,如果游戏设计中,需要一些特定操作,可以依托上述事件进行扩展组合来完成。