NGUI 官方文档中文版2 UICamera


UICamera 对于这个组件来用是一个不太合适的名字. 之所以用这个名字,从一定层度来讲是为了可以向下兼容.


UICamera组件一般是应用到相机上的,实际上这个组件会给应用它的相机所看到的所以对象发送NGUI事件消息.


除此之外它没有做任何UI方面的事情.事实上,如果你希望 你的GameObject对象接收NGUI事件消息,比如


OnPress,OnClick,OnDrag等等,你所需要做的就是将UIGamera组件添加到你的主相机上.你可以在一个场景中


使用多个UICamera组件.很多游戏中都有一个相机来绘制界面控件,另外还有一个相机来绘制游戏的其它内容.


注意:为了保证UICamera正常工作,你必须勾选Physics setting(物理设置)下的"Raycasts Hit Triggers"选项


   

UICamera的第一个设置项是"Event Type"(事件类型), 事件类型确定了鼠标或者触控等事件的发送顺序.


如果将它设置为UI模式,那么UICamera将总是基于界面控制的深度来发送事件消息--就象Unity的渲染顺序一样.


如果将它设置为World模式,那么UICamera将总是按游戏对象到相机的距离的远近顺序来发送事件消息.

------------------------------------------------------------------------------------------------------------------------------------------

Event Mask参数用来确定哪些Layers(层)中的游戏对象可以接收事件消息.很多时候你可以将它设置为"Everything",


或者参考UnityEngine.Camera的Culling Mask的值来设置,但你也可以自已调整它. 如果你修改了你场景中的界面


对象的层级,那么你也要相应的修改Event Mask参数,否则你的界面对象将接收不到事件消息.

--------------------------------------------------------------------------------------------------------------------------------------------

Debug参数可以用来显示调试信息.如果你相知道当前哪个游戏对象正在外理鼠标事件消息,你可以打开这个选项,


然后你在屏幕的左上角会看见一行调试信息,它显示了当前正在处理鼠标事件消息对象的名称及继承关系.

-----------------------------------------------------------------------------------------------------------------------------------------------

Allow Multi-Touch设置用来控制你的游戏界面是不是支持多点触摸.如果关闭它,多点触摸将全部转换为单点触摸.

-------------------------------------------------------------------------------------------------------------------------------------------------

Sticky Tooltip设置用来调整tooltip(工具提示)的行为.如果关闭它,工具提示将在鼠标再次移动后隐藏.如果打开它,


工具提示在鼠标指向同一个对象时将始终显示.

-----------------------------------------------------------------------------------------------------------------------------------------------------

Tooltip Delay设置用来控制工具提示显示的延迟时间.具体是指当鼠标指向某个对象之后到OnTooltip事件发送给这


个对象之前的这段时间间隔.

---------------------------------------------------------------------------------------------------------------------------------------------------

RayCast Range设置控制光线检测的长度.在很多情况下这个值可以被忽略.这个值以世界单位计算,所以如果你的


相机的近栽剪面为0.3并且远栽剪面为1000,你会发现一个非常远的游戏对象不会接收到NGUI的事件消息,那么将这个


值设置得更大些,比如2000.(一般要设置得大于你的相机的远近栽剪面的范围)




Eevent Sources区域用来设置哪些类型的事件将会被处理.如果其中某一个设置被关闭,那么这种类型的事件将不会


被处理.有一些系统平台会强制关闭特定的事件处理.比如控制台环境下就会自动关闭鼠标和触摸事件.


------------------------------------------------------------------------------------------------------------------------------------------------




Thresholds区域让你可以调整鼠标和触控事件的临界值,这些值以屏幕象素为单位.

------------------------------------------------------------------------------------------------------------------------------------------------------------------




Axes and Keys区域让你选择哪些游戏杆和按键可以操作界面.这个游戏杆和按钮的名称应该和项目


的InputManager中设置的名称一样.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


特别提示:

    UICamera 会向碰撞体发送的事件消息如下:

1. OnHover(isOver) 当鼠标悬停在碰撞体的上面时发送.

2. OnPress(isDown)当鼠标按下某个按钮时发送.

3. OnSelect(selected)当鼠标在同一个游戏对象上按下,然后按钮时发送.

4. OnClick()这个事件的发送条件和OnSelect事件基本一样,它还会检查鼠标是否移动了很多.

5.OnDoubleClick()当Click发生了两次或双数时会发送.UICamera.currentTouchID会告诉你哪个按钮被点击了.

6.OnDragStart()当一个游戏对象被触控时会发送.

7.OnDrag(delta)当一个游戏对象被拖动时会发送.

8.OnDragOver(dragedObject)当其它的游戏对象被拖动当前游戏对象之上时会发送.

9.OnDragOut(dragedObject)当其它的游戏对象被拖动出当前游戏对象的范围时会发送.

10.OnDragEnd()当停止拖动当前游戏对象时会发送.

11.OnInput(text)当键入文字时会发送(这个在通过点击来选择一个对象后才会有效)

12.OnTooltip(show)当鼠标悬停在一个对象上一段时间没有移动时会发送.

13.OnScroll(float delata)当鼠标滚轮滚动时会发送.

14.OnKey(KeyCode key)当键盘或游戏手柄输入时会发送.


要在你自已的脚本中处理这些事件,你只需要简单的在脚本中重新实现自已的事件就可以了.比如下面这样:


void OnPress (bool isPressed)

{    

if (isPressed) Debug.Log("I was pressed on!");    

else Debug.Log("I was unpressed");

}



类文档

http://tasharen.com/ngui/docs/class_u_i_camera.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值