UG3L1-4——Event System 和 Standalone Input Module
UG3L1-4——Event System 和 Standalone Input Module
EventSystem和Standalone Input Module组件
他们主要是用于输入事件监听管理和分发的
如果没有了他们
那么UI中的所有输入事件将不会被响应
他们的参数相关了解即可,一般情况下不会去修改
本章代码关键字
1 | EventSystem.current.IsPointerOverGameObject() //获取本帧输入是否点击到了UI控件 |
Event System
Event System意思是事件系统
它是用于管理玩家的输入事件并分发给各UI控件
它是事件逻辑处理模块
所有的UI事件都通过EventSystem组件中轮询检测并做相应的执行
它类似一个中转站,和许多模块一起共同协作
如果没有它,所有点击、拖曳等等行为都不会被响应
Event System 参数相关
- First Selected:首先选择的游戏对象,可以设置游戏一开始的默认选择
- Send Navigation Events:是否允许导航事件(移动/按下/取消)
- Drag Threshold:拖拽操作的阈值(移动多少像素算拖拽)
Standalone Input Module
Standalone Input Module意思是 独立输入模块
它主要针对 处理鼠标/键盘/控制器/触屏(新版Unity)的输入
输入的事件通过EventSystem进行分发
它依赖于EventSystem组件,他们两缺一不可
Standalone Input Module 参数
- Horizontal Axis:水平轴按钮对应的热键名
(该名字对应Input管理器) - Vertical Axis:垂直轴按钮对应的热键名
(该名字对应Input管理器) - Submit Button:提交(确定)按钮对应的热建名
(该名字对应Input管理器) - Cancel Button:取消按钮对应的热建名
(该名字对应Input管理器) - Input Actions Per Second:每秒允许键盘/控制器输入的数量
- Repeat Delay:每秒输入操作重复率生效前的延迟时间
- ForceModule Active:是否强制模块处于激活状态
注:如果使用了新输入系统 Input System,Standalone Input Module会提示你切换为新的 Input System UI Input Module
并将且该新的Input System UI Input Module可以关联到 Player Input 上
补充:点击UI控件时不响应Input输入逻辑
假设这样一个情况,Input
会监听鼠标左键,会让角色发射子弹,
但鼠标左键点击到UI按钮时,我们希望角色不发射子弹,也就是不响应 Input
的输入逻辑
这时我们可以使用 EventSystem.current.IsPointerOverGameObject()
来获取这次是否点击到了UI按钮,
若点击到了,就提前结束 Input
输入逻辑
1 | void Update() |
当点击屏幕上的UI控件时,将不会输出1
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!