虚幻UE 增强输入-触发器

上一篇增强输入基础:虚幻UE 增强输入-第三人称模板增强输入分析与扩展

主要对第三人称模板的增强输入进行分析、复刻和扩展

本篇将会对增强输入中的触发器中的各参数进行讲解

文章目录


前言

触发器作为增强输入四大概念其中之一,我们上一篇文章也对其作用进行了说明,

在参数讲解的开始、我们再一次回顾一下概念。

输入触发器(UInputTrigger): 使用经过修饰器修改的输入值,
或者使用其他输入动作的输出值,来确定是否激活输入动作。

触发器参数

1、下移TriggerDown


参数只有:驱动阈值

驱动阈值是按压的程度,没按压是0(0默认不起作用,得大于0),按压到底是1

驱动阈值有效范围(0,1]

键鼠无法测试,只能靠手柄进行测试。

大于驱动阈值,且在有效范围时才能触发开始

触发逻辑如下:

先:开始Started(一次)
然后:触发Triggered(持续)
最后:完成Completed(一次)
这是正常进行的方式、但是由于无法测试按键程度,所以无法测试其他结果。

2、已按下TriggerPressed


参数只有:驱动阈值

同上面逻辑一模一样,不再说明。

触发逻辑如下:

先:开始Started(一次)
然后:触发Triggered(一次)
最后:完成Completed(一次)
这是正常进行的方式、但是由于无法测试按键程度,所以无法测试其他结果。

3、已松开TriggerReleased


参数只有:驱动阈值

同上面逻辑一模一样,不再说明。

触发逻辑如下:

先:开始Started(一次)
然后:持续Ongoing(持续,直到松开)
再:触发Triggered(一次,松开时)
最后:完成Completed(一次)
这是正常进行的方式、但是由于无法测试按键程度,所以无法测试其他结果。

4、弦操作TriggerChordAction



参数有:驱动阈值(同上)、弦操作

弦操作是按键同时按下才会产生逻辑。

为了更方便的查看信息,我们打开debug调试窗,输入:

ShowDebug EnhancedInput

只点击鼠标触发逻辑如下:

此时没有打印消息是因为点击左键设置了弦操作,得两键同时按下
空格跳跃结束前点击鼠标左键触发逻辑如下:

一定要是在跳跃完成前按下鼠标左键才有效,按下鼠标不松时则一直为Trigger
点击鼠标左键松开前点击空格跳跃触发逻辑如下:

一定要在鼠标松开之前按下跳跃空格,在跳跃结束时逻辑结束

先:开始Started(一次,弦操作中任一一个按键结束前按下其他按键触发)
然后:触发Triggered(持续)
最后:完成Completed(一次,弦操作中全部按键结束后触发)
这是正常进行的方式、但是由于无法测试按键程度,所以无法测试其他结果。

5、点按TriggerTap


参数有:驱动阈值(同上)、点按释放时间阈值、受时间膨胀影响

点按释放时间阈值:当释放时间小于该值则正常结束,当大于该值则非正常结束。

受时间膨胀影响:如果为真,点按释放时间阈值得乘以时间膨胀的倍数
正常结束触发逻辑如下:(小于该值)

释放时间内松开鼠标触发完成
非正常结束触发逻辑如下:(大于该值)

超过释放时间则触发取消

先:开始Started(一次)
然后:持续Ongoing(持续)1/2,判定条件释放时间
1:
再:触发Triggered(一次,释放时间内松开)
最后:完成Completed(一次)
2:
最后:取消Canceled(一次,释放时间内未松开)
这是正常进行的方式、但是由于无法测试按键程度,所以无法测试其他结果。

6、脉冲TriggerPulse


参数有:驱动阈值(同上)、受时间膨胀影响(同上)、开始时触发、间隔、触发限制

开始时触发:在按下的一瞬间开始直接接触发Trigger

间隔:触发间隔时间

触发限制:0则无限制,限制次数,大于改次数时直接触发结束

间隔0.2s触发限制3次触发逻辑如下:

间隔0.2s触发限制无限次触发逻辑如下:

先:开始Started(一次)
然后:触发Triggered(一次,勾选开始时触发)
再:持续Ongoing(持续,期间按间隔触发Trigger)
最后:完成Completed(触发限制不为0,且触发限制次数完成,否则输出Cancel)

7、长按TriggerHold


参数有:驱动阈值(同上)、受时间膨胀影响(同上)、保存时间阈值,为一次性

保存时间阈值:按压时间超过该数值正常触发完成(未超过则触发取消)

为一次性:触发Trigger的次数,为真则一次,否则持续。

超过保存时间阈值(0.2),为一次性为真触发逻辑如下:

未超过保存时间阈值(0.2)触发逻辑如下:

先:开始Started(一次)
然后:持续Ongoing(持续)
再:触发Trigger(持续/一次/无,为一次性为真则一次,非正常结束则无,否则持续)
最后:完成Completed/取消Cancel(一次,按压时间超过该数值正常触发完成)

8、长按和松开TriggerHoldAndRelease


参数有:驱动阈值(同上)、受时间膨胀影响(同上)、保存时间阈值

保存时间阈值:按压时间超过该数值正常触发完成(未超过则触发取消)

超过保存时间阈值(0.2)触发逻辑如下:

未超过保存时间阈值(0.2)触发逻辑如下:

先:开始Started(一次)
然后:持续Ongoing(持续)1/2(正常结束1,非正常结束2)
1:(超过保存时间阈值)
再:触发Trigger(一次)
最后:完成Completed(一次)
2:(未超过保存时间阈值)
最后:取消Cancel(一次)

9、组合TriggerCombo



重点参数有:组合操作中的组合步操作、组合步骤完成状态、取消操作、按键的时间

组合步操作:按数组顺序按键触发组合技

组合步骤完成状态:在前一个动作完成状态完成之前按下下一个按键才能触发

按键的时间:对第一个按键无意义外,在前一个按钮结束该时间间隔内按下下一个按键才能组合成功

取消操作:在组合按键结束前按下则取消组合按键逻辑效果

这部分展示起来很麻烦,展示最常见的两种效果:

组合连接成功:

组合连接失败:(超过了按键的时间)

此部分就不分析执行逻辑了,过于复杂了。

总结

触发器很强大,对于按键控制很有趣,大家可以多尝试尝试!

然后最需要说一下组合和弦操作

组合:先后
弦操作:同时

参考

B站UP布兰德儿老蒋:虚幻引擎倾囊相授计划:增强输入系统教程

相关推荐
神码编程5 小时前
【Unity功能集】TextureShop纹理工坊(五)选区
unity·游戏引擎·shader·ps选区
咖肥猫8 小时前
【ue5学习笔记2】在场景放入一个物体的蓝图输入事件无效?
笔记·学习·ue5
benben04410 小时前
Unity3D仿星露谷物语开发7之事件创建动画
unity·游戏引擎
虾球xz13 小时前
游戏引擎学习第57天
学习·游戏引擎
异次元的归来1 天前
Unity DOTS中的share component
unity·游戏引擎
向宇it1 天前
【从零开始入门unity游戏开发之——C#篇25】C#面向对象动态多态——virtual、override 和 base 关键字、抽象类和抽象方法
java·开发语言·unity·c#·游戏引擎
向宇it1 天前
【从零开始入门unity游戏开发之——C#篇24】C#面向对象继承——万物之父(object)、装箱和拆箱、sealed 密封类
java·开发语言·unity·c#·游戏引擎
每日出拳老爷子1 天前
【图形渲染】【Unity Shader】【Nvidia CG】有用的参考资料链接
unity·游戏引擎·图形渲染
YY-nb2 天前
Unity Apple Vision Pro 开发教程:物体识别跟踪
unity·游戏引擎·apple vision pro
向宇it2 天前
【从零开始入门unity游戏开发之——C#篇23】C#面向对象继承——`as`类型转化和`is`类型检查、向上转型和向下转型、里氏替换原则(LSP)
java·开发语言·unity·c#·游戏引擎·里氏替换原则