流(Flow)


理解“流”的概念

流(Flow)是贯穿于流程图连接线中的能量,为你的流程图注入生命。

如在元素 页面的“节点”部分已经解释过,大多数节点需要“流”才能正常工作。只有像“数值”这样的基础节点,即使没有流也能输出结果。
如果一个流程图中没有任何输入的流,那么其中的所有节点都无法工作,因此在运行时不会发生任何事情。
以下是关于“流”的一些关键信息:

  • 流仅存在于流程图(flowgraph)中,而不存在于状态图(stategraph)中。
  • 流的起点是“on Update”节点。仅当流程图处于激活状态时,它才会提供流。
  • 大多数节点都有一个流输入端口,用于被激活,以及一个流输出端口,用于将流传递到下一个节点。
  • 有些节点拥有额外的流输出端口,这些端口仅在节点完成其任务后被触发。

常流(Constant Flow) vs. 脉冲流 (Impulse Flow)

你的流程图中流的主要来源是“onUpdate”节点的流输出端口。它会在每一帧被激活,并为你图中的所有节点提供流。
但当然,有些事情你并不希望持续发生,比如向玩家显示一条消息或重置一个节点。
最简单的解决办法是使用“Once”(仅执行一次)节点,它只会让常流通过一次,或者更技术性地说,只在一帧内通过流:

你可以看到,“Once”节点的流输出端口和重置端口和普通的流端口看起来不同。这正是我们所说的“脉冲”端口。
在流程图(Flowgraph)中有两种理解脉冲端口的方式:

  • 输出脉冲端口:
    输出脉冲端口的概念很简单。它只输出一次流,而不是持续不断地输出。
  • 输入脉冲端口:
    输入脉冲端口的概念则稍显抽象。
    它应该只接受一帧的流。如果端口收到持续的流,节点将无法正常工作。

另一个很好的脉冲行为例子是“Countdown”(倒计时)节点:


  • “finished” 输出端口
    “finished” 输出脉冲端口只会在节点完成后传递一次流。这非常适合在倒计时结束后触发某些事件。
  • “reset” 输入端口
    “reset” 输入脉冲端口理论上可以持续接收流,但如果不断重置倒计时节点会导致其行为变得不可理解。因此,重置端口应当只在需要时接收一次流,以便重置节点。

流的使用方法

在流程图中,通用的思路是从左到右进行搭建,并将流从 “on Update” 节点传递到整个图中。
这种理念自然而然引申为 “串联” 地从左到右排放节点,从而使你的流程图结构线性、清晰易读:

当然,你也可以对你的流程图进行分支——因为每个端口上连接的连线数量没有限制。
这对于那些逻辑上需要同时发生的事情尤其有用。

但需要注意的是,当你构建这种分支结构时,不同节点的执行顺序无法得到保证。
另一个需要留意的点是,当你设置变量 时,新值在下一帧才会真正生效。


调试流程

为了了解流程在你的流程图中是如何传播的,你可以在运行时进行可视化查看。

这将可视化所有处于激活状态、正在输出的连线。
如果你想更清楚地了解哪些节点当前处于激活状态,可以切换视图模式为“Heatmap(热力图)”。你可以在窗口 页面了解更多关于此功能的信息。

上一次修订: 六月 2, 2026

还有其他问题?

加入我们的 Discord 服务器
Our documentation is currently incomplete and undergoing active development. If you have any questions or feedback, please visit this forum thread.