UI事件功能
开头
在创建ui组件时,unity 会自动创建 EventSystem
对象,并且挂载EventSystem、StandaloneInputModule脚本
事件系统(EventSystem)
特性
- 该组件是ui功能的核心组件, 所有交互组件的响应事件都由该组件处理
- 该组件在update中实时运行
参数
- first Selected 刚进入游戏无任何输入时默认选择的元素
- send navigation Event 是否允许事件系统发送move/submit/cancel 等导航事件
- drag threshold 响应拖拽事件最小的像素区域(抖动)
独立输入模块组件(Standalone Input Module)
作用
当你的输入控制器在ui交互时产生滑动,确定,取消等输入时, ui系统能够得到对应的事件处理
使ui界面可以获得更多外设的输入信息,相当于信号的转换器
使用
例如:Horizontal Axis 指定水平移动输入绑定的InputManager 中字符串变量的名字
使用:
float x = Input.GetAxis("Horizontal");//对应键盘上的A键和D键 或←键和→键
//input.getAxis()和input.getAxisRaw()的区别
//input.getAxis()的返回值m从0渐变为1或者-1
//input.getAxisRaw()的返回值从0变成1或者-1,没有渐变
UI 射线发送组件(Graphic Raycaster)
当添加画布时自动添加
射线会在击中第一个阻塞它的ui时停止(勾选raycast target)
事件触发器组件
所有交互操作的集合体
比如按钮就是实现了触发器的几个方法
ui对象挂载的脚本实现接口后, 即可在该对象触发对应事件后被回调
注意事项?
- EventSystem组件只会存在整个ui系统中存在一个且每一帧都在运行(update)
- 每个 canvas 上都要添加GraphicRaycaster 否则无法得到输入响应(父画布有时,子画布也需要添加)