[随便聊聊] Unity3D NGUI事务 UIEvents

2015年03月13日 10:54 0 点赞 0 评论 更新于 2025-11-21 16:54

最近在蛮牛教育上学习 NGUI 的教程,总结了关于 NGUI 的事件,分享给大家,若有不足,欢迎指出。

UIEvents - 事务体系

1. void OnHover(bool isOver)

当鼠标移出或者悬停在某个碰撞器上时,该方法会返回一个布尔值。不过在触摸设备上,此方法不会起作用。

2. void OnPress(bool isDown)

当鼠标点击或者触摸到碰撞器时,会产生布尔值并返回。

3. void OnSelect(bool ed)

当鼠标或者触摸操作在 OnPress 事件触发后释放时,将会返回这个布尔值。

4. void OnClick()

该方法的触发条件与 OnSelect 类似,当点击或触摸碰撞器并且没有发生拖拽操作时触发。

5. void OnDrag(Vector2 delta)

当移动鼠标或者触摸按下后,位移超过特定阈值时触发该方法,delta 参数表示位移量。

6. void OnDrop(GameObject drag)

当鼠标或触摸操作释放于与产生 OnDrag 事件不同的碰撞器上时触发,传递的参数 drag 是产生 OnDrag 事件的游戏对象。

7. void OnInput(string text)

OnSelect 事件产生后,在同一个碰撞器上触发输入操作时调用该方法,一般只有 UIInput 会使用它。

8. void OnTooltip(bool show)

当鼠标悬停超过 tooltipDelay 时间后触发该方法,在触摸设备上此方法无效。

额外信息

在处理这些事件时,我们可以使用以下方式获取相关信息:

  • 使用 UICamera.lastCamera 可以找到发出事件的相机。
  • 使用 UICamera.lastHit 可以获得接收这个事件的对象。
  • 使用 UICamera.lastTouchPosition 可以获得触摸或屏幕的位置。

作者信息

boke

boke

共发布了 3994 篇文章