虚幻引擎图文笔记:长按事件(Key Hold event)的蓝图实现

长按事件也是游戏中的常见需求,长按事件的蓝图实现和代码实现思路不太一样,虽然节点用的不多但逻辑有点绕,本文详细解读一下实现方法,并且用宏制作一个拿来即用的长按事件处理节点

长按事件(Key Hold event)

  • 玩家按下某指定按键,并且在一定时间内(一般0.2秒左右)没有抬起该按键,就会触发一个长按事件
  • 触发完毕以后如果玩家依然不抬起该按键,并不会继续触发长按事件,除非抬起以后再次按下
  • 如果玩家按下该按键,但没有等到规定时间就抬起了,不会触发长按事件,而是触发一个短按事件

基本原理

使用宏实现

在这里插入图片描述
在图上我已经给节点起了名字以方便大家对应

Pressed事件

无论长按事件还是短按事件都是以按键按下为起点的

  1. 所以当有了Pressed事件以后做了三件事:
    1.1 计时器重新计时(序列1计时器
    1.2 开启长按事件门序列1长按事件门Open
    1.3 开启短按事件门序列1短按事件门Open

  2. 如果计时器到了规定的时间(比如:0.2秒)并且此时长按事件门依然开着(计时器长按事件门Enter序列3),这就意味着玩家已经完成了长按的操作:

    2.1 关闭短按事件门序列2短按事件门Close),因为这一轮操作已经不会触发短按事件
    2.2 触发长按事件

Released事件
  • 如果玩家抬起按键发生在长按事件产生前,那么它会阻止本次长按事件的发生,并且产生一个短按事件
  • 如果玩家抬起按键发生在长按事件产生后,那么它什么也不会触发

所以当有了Released事件,它就做两件事:

  1. 关闭长按事件门序列2长按事件门Close
  2. 尝试产生短按事件序列2短按事件门EnterOutputs

使用方法

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开发游戏的老王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值