关键字:
Enhanced Input 、 输入、映射、事件、鼠标、键盘、键鼠、动作、Trigger、触发器、
疑问:
- 新输入系统怎么做一个基础的案例?
- Trigger修改器中每个项都是什么功能?
- 功能边界问题:如时刻、时段、单次事件、持续事件、可变频率事件,延迟事件、前置事件、后置事件?
- InputAction和InputMappingContext中都有修改器,那么听谁的?
- 如何获得鼠标平移? 如何将WSADQE的三维XYZ的事件进行输出?
看完希望你会找到答案。
增强输入系统 Enhanced Input
最主要的两个组件
- Input Mapping Context 输入映射管理器 建立映射关系,是一套映射方案 简称 IMC
- Input Action 输入动作 单个键盘鼠标动作事件 简称 IA
二者关系:
Input Mapping Context
|——Input Action
|——|——映射对应键鼠
|——|——映射对应键鼠
|——|——… …
|——Input Action
|——|——映射对应键鼠
|——|——映射对应键鼠
|——|——… …
|——Input Action
|——|——映射对应键鼠
|——|——映射对应键鼠
|——|——… …
|—— … …
简单的例子:制作一个鼠标左键事件,单击、抬起并print信息
一、制作Input Action
创建一个IA,在空白区域右键,弹出菜单Input / Input Action ,起名IA_LMB,用它表示单击左键
- 这个IA起名字,根据项目而定。可以是键鼠对应的按钮名称,也可以是角色行走、开枪的动作名称。 命名方式很重要,它是蓝图中的事件的名称。
- 类似载具类操作,如汽车,大多将水平和垂直轴分开处理,即WS一组、AD一组、有的还会有QE一组。这样分开输出比起合在一个事件里的三维坐标更容易控制,因为车辆前后是油门,在没有油门的时候,左右是不动的。
- 我的项目以 键盘操作 为主,所以用 <键鼠按钮名字_事件名称> 命名。如下图,展示了正式项目中,围绕鼠标左键的双击、按住、按下、抬起事件。之所以分的这么细致的产品需求是:项目有大量键鼠组合操作。
注意: 时刻、时段,有区别。
名称 事件描述 IA_LMB_DubbleClick 鼠标左键双击事件 IA_LMB_Hold 鼠标左键持续按住,并持续输出事件 IA_LMB_Pressed 鼠标左键按下时刻事件 IA_LMB_Released 鼠标左键抬起时刻事件 这么做对于后续的键鼠事件配置,也将更为复杂 。
回到简单案例,当前的案例没有那么复杂的命名方式,双击打开IA