UGUI学习——EventSystem

UGUIEventSystem介绍


创建uGUI控件后,Unity会同时创建一个叫EventSystemGameObject,用于控制各类事件。可以看到Unity自带了两个Input Module,一个用于响应标准输入,一个用于响应触摸操作。Input Module封装了对Input模块的调用,根据用户操作触发各Event Trigger。理论上我们可以编写自己的Input Module,用来封装各种外部设备的输入,只要加入Event System所在的GameObject就行。

 

Event System组件则统一管理多个Input Module和各种Raycaster。它每一帧调用多个Input Module处理用户操作,也负责调用多个Raycaster用于获取用户点击的uGUI控件以及2D3D物体。

 

EventSystem

EventSystem 是一种将基于输入的事件发送到应用程序中的对象,无论是键盘、 鼠标、 触摸或自定义输入。

First Selected

Send Navigation Events

Drag Threshold

 

Standalone Input Module

input module用于鼠标、键盘和控制器。该模块被配置查看 InputManager,发送事件是基于输入Input manager管理器是何种状态。

Horizontal Axis:水平输入设备

Vertical Axis: 垂直输入设备

Submit Button: 提交按钮事件

Cancel Button:取消按钮事件

Input Action Per Sceond:允许最大每秒事件数

Allow Activeation On Mob..:?

 

Touch Input Module

Allow Activation On Sta...

 

 

EventSystem作为事件系统的管理者和调度者,通过每帧获取InputModule到的用户操作和Raycaster到的对象,进行触发该对象上的来自继承接口的方法,如下接口和方法:

 

Eventsystem支持大量的事件,并且他们可以进一步定制在用户自定义的用户编写的 InputModules中。

 

支持的StandaloneInputModule和 TouchInputModule的事件提供的接口和所实现的接口可以在 MonoBehaviour中实现。如果你有有效的 EventSystem配置的事件会在正确的时间被调用。

IPointerEnterHandler-OnPointerEnter-pointer指针进入该对象时调用

 

IPointerExitHandler-OnPointerExit- pointer指针退出该对象时调用

 

IPointerDownHandler-OnPointerDown-当指针在对象上按下时调用

 

IPointerUpHandler-OnPointerUp-pointer指针被释放(原状态为被按下)时调用

 

IPointerClickHandler-OnPointerClick-pointer指针在同一对象上按下并释放时调用(单击)

 

IBeginDragHandler-OnBeginDrag-拖动对象在拖动开始时调用

 

IDragHandler-OnDrag-拖动对象,当拖动正在发生进行时调用

 

IEndDragHandler-OnEndDrag-拖动对象拖动完成时调用

 

IDropHandler-OnDrop-对该对象拖动完成时调用

 

IScrollHandler-OnScroll-当鼠标滚轮滚动时调用

 

IUpdateSelectedHandler-OnUpdateSelected-在选定的对象上eachtick中调用

 

ISelectHandler-OnSelect-当对象成为所选的对象时调用

 

IDeselectHandler-OnDeselect-在被选定的对象成为取消被选择时调用

 

IMoveHandler-OnMove-移动事件发生时调用(左、右、上、 下等)

 

ISubmitHandler-OnSubmit-当按下提交按钮时调用

 

ICancelHandler-OnCancel-当按下取消按钮时调用

 

EventSystem需要一种方法用于检测当前的输入的事件需要发送到什么上,而这由 Raycasters提供的Raycasters搜索scene返回给定的屏幕的位置上‘most valid’(最有效的)的对象。有几种类型的 Raycasters被提供:

 

GraphicRaycaster-用于 UI 元素,在画布上,画布内搜索

 

Physics2DRaycaster-用于为 2D 物理元素

 

PhysicsRaycaster-用于为三维物理元素

 

当一个场景中存在并且启用了Raycaster时,它将被用于EventSystem随时查询InputModule是谁发出的。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值