Hierarchy视图里的Transform和Camera组件
Hierarchy视图里的Transform和Camera组件
在Hierarchy视图里,选中Camera,然后在Inspector视图里查看其各组件,如图1-8所示。对于Transform和Camera组件,对于使用过Unity的读者来说再熟悉不过本文选自NGUI从入门到实战教程。
但是其上名为UICamera(Script)的脚本组件,才是NGUI创建的UI控件所特有的。提示:UICamera(Script)脚本组件通常会被赋予特定的摄像机对象,而这些摄像机的特殊之处在于它需要与UI控件发生交互。即接收来自于UI控件的各种消息事件,例如,游戏界面上的特定按钮被点击的事件本文选自NGUI从入门到实战教程。
图1-8 Camera里的各组件
UICamera(Script)脚本组件包含了大量的属性:
q Event Type:指定这个摄像机将会发送的事件类型;
提示:此属性包含了两个参数:World和UI。前者表示事件来自于与3D世界中游戏对象的交互;后者表示事件来自于与2D控件的交互;
q Event Mask:指定可以接收到事件消息的图层;
q Allow Multi Touch:指定是否允许多点触控;
q Sticky Press:指定当手指在一个按钮处按下,然后手指滑动到按钮外部的时候,按钮是否会弹起,而其它对象则是否会接收到来自于这个手指的触发事件;
提示:复选Sticky Press属性的时候,按钮会持续处于被按下的状态,即使此时手指已经滑动到了按钮外,而其它控件也不会接收到来自于手指的触发事件;
q Sticky Tooltip:指定UI控件上作为控件说明的便笺信息,将在怎样的事件被触发以后显示;
提示:Sticky Tooltip属性被复选的时候,便笺信息在鼠标移动到UI控件外部的时候显示;取消复选的时候,鼠标移动到UI控件上的时候显示便笺信息,移出后马上消失。
q Tooltip Delay:用于设置便笺信息持续显示的时间,单位是秒;
q Raycast Range:Raycast实际上可以被看作是一条不可见的射线,它以鼠标的位置或者屏幕上被触摸的位置为起点,以当前摄像机的朝向为方向发射一条射线,此射线就被用于检测碰撞以及其它事件,有些开发者或许希望可以指定这个射线能够检测的范围,就可以通过设置这个属性来实现。
提示:Raycast Range默认的属性值是-1,表示没有范围限制;
q Event Sources:此属性用于指定摄像机所监听事件的来源;
提示:一共有4个可选项,Mouse表示监听鼠标事件,可以来自于鼠标左键、右键、中键和滚轮;Touch表示监听移动设备的触摸事件;Keyboard表示监听键盘的输入事件;Controller表示监听来自于操纵杆设备的事件;
q Thresholds:指定特定事件可以被触发的临界值;
提示:一个有4个可设置的值,Mouse Drag表示判定当前事件是鼠标拖动事件的临界值是鼠标至少拖拽了多少个像素点;Mouse Click表示判断当前事件是鼠标点击事件的临界值是鼠标按下了以后,在拖动了多少个像素点之内,松开了按键,超出范围则不判定为点击事件;Touch Drag与Touch Tap类似于前两个可设置的值,只不过是鼠标换成了手指;
q Axes and Keys:设置NGUI插件的输入系统。
提示:在Unity中,Keys几乎表示了所有输入设备的键值,例如,键盘上的所有按键都有对应的Keys,其它游戏操纵杆也一样,因此可以直接使用Keys表示特定的按键。同时,Unity将其中一些常用的Keys映射到了一些其它的Axes上,因此开发者也可以直接使用Axes表示特定的按键。NGUI对Axes and Keys属性的默认设置如图1-9所示,前3个是Axes,后4个是Keys。
图1-9 NGUI对Axes and Keys属性的默认设置
对于Keys,读者可以直接从名称上识别出其对应的键,但是对于Axes,与它对应Keys读者也许并不了解,而且读者有时可能需要修改Axes对应的Keys,有时则是直接添加Axes。那么,在Unity中如何添加和修改Axes呢?方法是,单击Edit|Project Settings|Input命令,即可弹出名为InputManager的对话框,读者可以在此对话框中添加和修改Axes,如图1-10所示本文选自NGUI从入门到实战教程。
图1-10 Unity默认设置的Axes