UE5增强输入系统实现组合按键

1.输入事件绑定

这里我们使用 Shift + 空格 两个按键实现一个“大跳”的功能。首先,创建两个输入操作 IA_Shift 和 Jump,值类型选择 数字(布尔)类型即可。然后在创建好的输入映射情景IMC_oriCharacte中添加这两个映射,分别绑定Shift和空格这两个按键。

 对于Shift键我们不做任何处理,仅作为组合键的一部分。对于空格键,我们添加一个跳跃事件,也就是说单独按空格时触发“小跳”。在人物的蓝图类中添加事件:

 2.组合按键实现

  • 组合

有了前面两个输入操作之后,我们再创建一个新的输入操作BigJump,然后再添加到IMC_oriCharacte中:

添加一个组合触发器,然后加入之前创建的两个输入操作。这里的参数按键的时间对第一个按键无意义,对其他的组合按键必须在前一个按键结束的该时间间隔内按下才能完成组合操作,也就是说在按下并松开Shift键之后的1s内需要按下空格键才能完成“大跳”的组合操作。

然后在人物的蓝图类中,我们再去实现其逻辑,其实就是修改跳跃时Z方向的速度:

注意这里增强输入系统的组合触发器在按下第一个按键时就会触发事件,也就是说在按下Shift键时,会依次执行StartedOngoing事件,然后根据组合的完成情况执行Canceled(未在1s内按下空格)或者 Triggered + Completed事件(按下空格)。因此这里我们需要将修改跳跃速度的函数连在Started后面,将改回的函数在Canceled和Completed后各连一条线,防止取消操作后单按空格的“小跳”也变成了“大跳”。

  •  弦操作

组合触发器的逻辑是先按下Shift并松开,再按下空格键才能触发。而弦操作是按键同时按下才会产生逻辑。这里我们修改BigJump的触发器:

 弦操作需要在按下第二个按键时才会触发事件,也就是说我们先按下Shift键不松,然后再按下空格键才能触发。事件的执行顺序与单独按下一个按键时一致:Started,Triggered,Completed。蓝图类中的事件修改为:

 这样,就可以使用组合按键实现“大跳”了。

 

posted @ 2024-08-02 16:23  zxc0210  阅读(641)  评论(0)    收藏  举报