北京企业网站优化,网站做edi认证有用没,自己创办网站,荥阳网站建设公司哪家好一. 事件系统概述 Unity的事件系统具有通过鼠标、键盘、游戏控制柄、触摸操作等输入方式#xff0c;将事件发送给对象的功能。事件系统通过场景中EventSystem对象的组件EventSystem和Standalone Input Module发挥功能。EventSystem对象通常实在创建画布的同时被创建的#xf…一. 事件系统概述 Unity的事件系统具有通过鼠标、键盘、游戏控制柄、触摸操作等输入方式将事件发送给对象的功能。事件系统通过场景中EventSystem对象的组件EventSystem和Standalone Input Module发挥功能。EventSystem对象通常实在创建画布的同时被创建的通常附加了EventSystem组件的对象一个场景中只能存在一个。
二. Event System组件
2.1 Event System组件概述
事件系统和核心功能是当发生了输入事件后判断事件类型并把输入事件发送给应该收到事件的对象对象的事件处理函数被调用。
输入模块组件Standalone Input Module组件和Touch Input Module(已不推荐使用后文忽略此组件)用来确定事件类型和触发处理函数
射线投射组件来确定收到事件的对象(UGUI中射线组件在画布对象上本文不作详细介绍)
Event System组件负责管理输入组件因此Event System和Standalone Input Module组件附加到同一个对象后才能发挥作用缺少两者中任意组件会导致事件系统失效。
当 EventSystem 启动时它会搜索附加到同一 GameObject 的任何 BaseInputModule 并将其添加到内部列表中。在更新时每个附加模块都会收到 一个 UpdateModules 调用模块可以在其中修改内部状态。所有模块更新完成后 活动模块将执行 Process 调用。 此时可以进行自定义模块处理。
2.2 成员 API使用示例判断是否有任意UI对象被点击
void Update(){// Check if the left mouse button was clickedif (Input.GetMouseButtonDown(0)){// Check if the mouse was clicked over a UI elementif (EventSystem.current.IsPointerOverGameObject()){Debug.Log(Clicked on the UI);}}}
2.3 编辑器属性 三.Standalone Input Module组件
如前文所述Standalone Input Module组件用来确定事件类型和触发处理函数
3.1 编辑器属性 在Inspector视图上它的前4个属性是用来设置移动、提交和取消按钮的组件会在这些按钮触发时将事件发送给选中的对象。这里的值要设置为Input Manager(Edit-Project Setting-Input Manager)面板中已有的值。 3.2 事件响应方式
方式1实现IXXHandler接口脚本挂在要点击的目标对象上面
public class onBtnClick : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
{public void OnPointerDown(PointerEventData eventData) {print(calling OnPointerClick);}public void OnPointerUp(PointerEventData eventData) {print(calling OnPointerClick);}
}
方式2使用EventTrigger组件
传送门:UGUI组件EventTrigger用法_ellis1970的博客-CSDN博客
3.3 事件类型