声明:此篇文章是个人学习笔记,并非教程,所以内容可能不够严谨。可作参考,但不保证绝对正确。如果你发现我的文章有什么错误,非常欢迎指正,谢谢哦
1.EventSystem物体
第一次在Unity中创建UI元素时,总会自动生成一个EventSystem物体,它包含三个组件:Transform、EventSystem、Standalone Input Module。如果我们把它删除了,会发现UI上的事件(比如点击、拖拽)将不会被检测到。没错,它就是用来处理UI相关的事件的。
1.1 EventSystem组件
EventSystem基于输入给物体发送事件,它在整个事件系统中扮演的主要角色是:
1.管理被选中的物体
2.管理正在使用的Input Module
3.管理射线
4.根据需要更新所有Input Module
它相当于于一个管理者和通讯者,如果仅仅把此组件挂在一个游戏物体上是无效的,因为它还要结合其它组件一起使用。
属性 | 功能 |
---|---|
First Selected | 一开始默认选中的物体 |
Send Navigation Events | 事件系统是否允许导航事件(移动/提交/取消)。如果取消了,按上下左右就不能切换选中项了。 |
Drag Threshold | 拖拽阈值,即鼠标当前帧和上一帧达到此值,才会响应拖拽事件 |
1.2 Standalone Input Module 组件
Input Module是事件系统运行逻辑的主要所在,它主要用于:
1.处理输入
2.管理事件状态
3.发送事件给游戏物体
在EventSystem中,同一时刻只能激活一个Input Module,并且此组件必须挂载到EventSystem组件相同物体上才能有效。
你也可以扩展此组件:官方文档
在Inspector面板上,它的前四个属性是用来设置移动、提交和取消按钮的,Input Module会在这些按钮触发时将事件发送给选中的物体。这里的值要设置为Input Manager(Edit->Project Setting->Input Manager)面板中已有的值。
属性 | 功能 |
---|---|
Horizontal Axis | 水平移动轴 |
Vertical Axis | 垂直移动轴 |
Submit Button | 提交按钮 |
Cancel Button | 取消按钮 |
Input Actions Per Second | 每秒的输入值个数 |
Repeat Delay | 每秒重复率生效前输入操作的延迟(秒) |
Force Module Active | 启用此属性可强制此独立输入模块处于活动状态。 |