赞
踩
从 UE5.1版本起 UE默认的输入都改成了 Enhanced Input (增强输入系统)
那么为什么要这样呢?简单举个栗子
比如我们的游戏角色 包含移动射击以及使用载具的功能
默认状态下 :
WSAD移动 左键射击
使用载具状态下 :
WASD移动 左键鸣笛
不难发现 其中两种操作中 只有 左键 的操作是不相同的
如果我们按照面向对象的角度来思考
可以将 WASD移动 的操作提出 在两种状态下共用
而 左键 则分别对应两种不同的状态进行定制
这样既方便维护也减少了BUG的产生。
至此我们就获得了 增强输入系统第一个新概念 输入映射向下文(Input Mapping Contexts)
输入映射向下文 简单粗俗来讲 ,就是上述的两种不同状态
并且你可以为一个状态指定多个! 输入映射上下文
那么就可以将上述的 状态操作 变成三个输入映射上下文!
输入映射向下文 | 对应操作 |
---|---|
输入映射向下文1 | WASD移动 |
输入映射向下文2 | 左键鸣笛 |
输入映射向下文3 | 左键射击 |
这样一来 :
载具状态下 : 我们可以为输入系统指定输入上下文为 输入映射向下文1 和 输入映射向下文2
默认状态下 : 我们可以为输入系统指定输入上下文为 输入映射向下文1 和 输入映射向下文3
这样就方便的实现了上述的情景
增强输入系统主要有四个概念: 除了上述的 输入映射向下文(Input Mapping Contexts) 还有
输入动作(Input Actions): 指具体动作内容 例如上文具体的 ‘移动’ ‘开枪’ ‘鸣笛’ 即具体的一个事件\行为。
修饰器(Modifiers):简单来讲就是原本输入的值进行修正,比如判断死区 ,根据FOV放大缩小输入值,取相反值等。
触发器(Triggers): 就是指在什么条件下才能触发或者如何触发 比如 长按,单击,按下,松开。
有点懵也很正常,下面我们分别讲讲这四个概念。
如上文所述 主要针对不同状态 映射一套操作,来应对不同的情景 。
我们可以在里面对 输入动作(Input Actions) 映射不同的按键映射(具体的按下哪个键之类),
这是虚幻引擎模板中的输入映射向下文,其中 IA_Jump 、IA_Move 等 均为 输入动作(Input Actions)
并且为 输入动作(Input Actions) 指定了多个按键映射
即 空格 、手柄按下 、触摸1 均可触发 IA_Jump 这一输入动作
其中我们还可以对不同按键单独设置 触发器 和 修饰器 。(下文细嗦)
输入动作 指的是具体的一个行为或者动作 ,并且可以使用 触发器 和 修饰器 进行精确描述,例如长按奔跑,单击下蹲等。
其实做主要的是需要指定对应动作 返回的值类型 即 图中 值类型。
栗如 开门 只有 开和不开两种 即 数字(布尔型)
栗如 移动 是一个轴值输入 即 Axis1D (浮点型)
修饰器就是对原始输入的处理。主要包含以下
关于 拌合输入轴值 可以参阅 我的另一篇文章
注意 修饰器可以同时应用多个 并且会 从上到下依次调用
修饰顺序不同导致产生不同的输入结果
触发器即为什么操作触发对应行为 主要包含以下
通过 获取 玩家控制器 来 添加\移除 映射上下文。
其中 Priority 为优先级 高优先级优先触发 并且将影响上文提到的按键消耗
名称 | 解释 |
---|---|
Triggered | 当触发时调用(即满足上文中提到的触发器的条件) |
Started | 当绑定的按键按下时调用(不论是否达到触发条件都会调用) |
Ongoing | 当绑定的按键按下时 并且未触发 持续调用 |
Canceled | 当绑定的按键按下但是没能达到触发条件时调用 |
Completed | 当触发事件结束后调用 |
Action Value | 输入对应的输入值 |
Elapsed Seconds | 经过的时间:从按下按键经过的时间 |
Triggered Seconds | 触发的时间:从触发开始经过的时间 |
Input Action | 触发的输入动作名称 |
举个例子
如图当调用这个 长按 W 的时候 调用顺序如下
--------------------------------------- 按下按键 —
Started (一次)
Ongoing (持续一秒)
Triggered (持续触发)
--------------------------------------- 松开按键 ----
Completed (触发一次)
--------------------------------------- 按下按键 —
Started (一次)
Ongoing (持续触发)
--------------------------------------- 在触发前松开按键 ----
Canceled(一次)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。