返回 导航

UE5

hangge.com

UE5 - 流程控制节点功能介绍与使用详解2(DoOnce、DoN、Delay、Retriggerable Delay)

作者:hangge | 2025-08-18 08:55
    在虚幻引擎5的蓝图可视化脚本系统中,流程控制节点是构建复杂逻辑的基石。它们决定了代码执行的顺序、条件和重复性。我在上文介绍了其中一部分节点地功能和使用样例(点击查看),本文接着介绍 DoOnceDoNDelayRetriggerable Delay 这几个节点的使用。

七、DoOnce(执行一次)

1,功能说明

确保其后的逻辑只执行一次。常用于初始化或触发一次性事件。

2,引脚说明

(1)输入:
  • In (执行入口)
  • Reset (输入执行,重置节点,允许 In 再次触发输出)
(2)输出:
  • Out (第一次触发 In 时执行)

3,应用场景

  • 游戏开始时只执行一次的初始化(如加载存档、生成初始道具)。
  • 教程提示只显示一次。
  • 成就解锁判定(确保只解锁一次)。
  • 需要手动重置才能再次触发的机关(配合 Reset 引脚)。

4,使用样例

下面样例运行后只有第一次按下键盘数字 1 才会打印信息,后续再按则不会再触发。

八、DoN(执行 N 次)

1,功能说明

限制其后逻辑的执行次数为 N 次(N 可设置)。达到次数后不再执行,直到被重置。

2,引脚说明

(1)输入:
  • Enter (执行入口,尝试触发输出)
  • Reset (输入执行,重置剩余次数为最大值 N)
(2)输出:
  • Exit (当剩余次数 0 时执行,执行后剩余次数减 1)
  • Remaining (整数输出,连接剩余次数到其他逻辑)
(3)参数:
  • Max Count (整数):允许执行的最大次数 (N)。

3,应用场景

  • 限制玩家使用消耗品次数(如血瓶最多用 3 次)。
  • 限制连续释放特殊攻击次数(玩家可用按下空格发射特殊武器。三次射击后,需要按 R 键重置节点,以便再次进行三次射击)
  • 一个陷阱最多触发几次后失效。
  • BOSS 战的阶段转换(打到 N 次后进入下一阶段,然后 Reset)。
  • 抽奖次数限制。

4,使用样例

下面样例运行后每次按下键盘数字 1 都会打印信息,累计 3 次后不会再触发。

九、Delay(延迟)

1,功能说明

暂停当前执行流一段时间(秒),然后在延迟结束后继续执行后续逻辑。它是实现计时、等待、冷却、动画同步等功能的基石。

2,引脚说明

(1)输入:
  • In (执行入口)
  • Duration (浮点数):延迟的时长,单位是秒。可以是固定值、变量或计算表达式。
(2)输出:
  • Out (执行):当指定的 Duration 时间过去后,执行流从这里继续。

3,应用场景

  • 技能冷却: 释放技能后延迟一段时间才能再次使用。
  • 动画同步: 等待动画播放到特定时刻再触发事件(如播放爆炸动画后延迟 0.5 秒再造成伤害)。
  • 定时器/倒计时: 实现炸弹倒计时、状态效果持续时间、刷新间隔等。
  • 分阶段逻辑: 将一段逻辑拆分成几个步骤,步骤间加入延迟(例如:显示提示文本 -> 延迟 2 秒 -> 自动关闭提示)。
  • 模拟加载/等待: 在网络请求或资源加载前显示加载图标一段时间。
  • 防止连续快速触发: 在按钮点击事件后加入短暂延迟,防止玩家连点造成意外多次触发。

4,使用样例

下面样例运行后,可以看到“hangge.com”在延迟一秒后才出现。

十、Retriggerable Delay(可重置延迟)

1,功能说明

    与标准 Delay 类似,它会暂停执行流一段时间。关键区别在于:如果在延迟倒计时结束之前,再次有执行流进入其输入引脚 (In),它会重置(重新开始)倒计时。 只有在一段完整的、不被中断的延迟时间过去后,才会触发输出 (Out)。

2,引脚说明

(1)输入:
  • In (执行入口):每次触发都会重置并重新开始延迟计时器。
  • Duration (浮点数):延迟的目标时长(秒)。注意: 如果 Duration 输入的值在延迟期间发生变化,新的值会在下次重置或开始时生效(当前运行的计时器时长不会动态改变)。
(2)输出:
  • Out (执行):仅在成功完成一段完整的、未被重置的 Duration 延迟后触发。

3,应用场景

  • 技能冷却重置: 玩家连续快速点击技能按钮时,只有最后一次点击后等待完整的冷却时间才会真正重置技能可用状态。之前的点击只会重置倒计时,不会让技能提前恢复。
  • 输入防抖 (Debouncing): 防止按钮被快速重复点击导致多次意外操作(如打开关闭菜单、购买物品)。只在用户停止点击一段时间后才响应一次。
  • 搜索框实时搜索优化: 用户连续输入字符时,只在用户停止输入一段时间(如 0.5 秒)后才发起搜索请求,避免对每个按键都发起请求。
  • 检测“停止”状态: 如判断角色是否真的停止了移动(速度为零后持续一小段时间,期间如果又动了则重置)。
  • 道具拾取提示: 玩家快速连续拾取多个道具时,提示信息不会闪烁多次,只会在拾取动作停止后显示一个整合的提示。

4,使用样例

    下面样例运行后按下键盘数字 1 等待 2 秒会打印“hangge.com”。但如果不停地连续按数字 1 则不会打印任何信息,直至最后一次按下后等待 2 秒才又会打印信息。
评论

全部评论(0)

回到顶部