跳到主要内容

Sub-Flow

一个 Sequine Flow 可能包含一个调用另一个 Sequine Flow 的 Command。被调用的 Sequine Flow 将作为 sub-flow 运行。一个 sub-flow 也可以再调用另一个 sub-flow。在一个根 Sequine Flow 中,可以运行的 sub-flow 层级数量没有限制。

以下是一些适合使用 sub-flow 的场景:

  • 可复用性。你可能有多个 Sequine Flow 在某一部分执行相同的一组 Command。在这种情况下,可以为该部分单独创建一个 Sequine Flow,然后在这些 Sequine Flow 中将其作为 sub-flow 调用。这类似于在编程中创建可复用的函数或方法。
  • 封装。你可能不希望一个 Sequine Flow 包含大量 Command 而变得过于庞大。此时可以将它们拆分为多个独立的 Sequine Flow,每个流程负责较小的功能范围。

创建 Sub-Flow

创建 sub-flow 的方式没有区别。sub-flow 本质上只是一个普通的 Sequine Flow。之所以称为 sub-flow,是因为它由某个用于运行 sub-flow 的 Command 所调用。

你可以使用 Sequine Flow AssetSequine Flow Component 作为 sub-flow。

提示

你也可以将 Sequine Flow AssetSequine Flow Component 直接拖拽到节点区域,作为快捷方式自动创建一个 Run Sub-Flow Command。

运行 Sub-Flow

Sequine Flow 编辑器中,在空白区域右键点击,选择 Flow -> Run Sub-Flow (Asset),即可创建一个新的 Run Sub-Flow Command。

Run Sub-Flow

此时你可能会注意到 Run Sub-Flow Command 有两个版本。这对应于作为 sub-flow 使用的 Sequine Flow 的对象类型。 Run Sub-Flow (Asset) 表示调用一个 Sequine Flow Asset 作为 sub-flow。

1. Run Sub-Flow (Asset) Command

该 Command 会运行一个 Sequine Flow Asset 作为 sub-flow。

我们会在 Branch 章节中详细介绍 Branch Command。这里是一个示例,说明如何根据名为 ShouldRunFlow1 的条件选择执行哪个 sub-flow。在这个示例中可以看到,Run Sub-Flow (Asset) Command 需要填写一个名为 Sequine Flow Asset 的字段。

Run Sub-Flow

2. Run Sub-Flow (Component) Command

该 Command 会运行一个 Sequine Flow Component 作为 sub-flow。

由于 Sequine Flow Component 是场景中的对象,因此可以使用三种方式之一来指定该 Flow Component。 如果你尚未阅读,请参考 跨场景系统

Run Sub-Flow Component

3. 退出 Sub-Flow

默认情况下,当 sub-flow 通过其所有默认输出后,会退出并返回到父流程。但在旧版本(v1.4.0 及以下)中,这种退出方式较为模糊,因此不太实用,因为大多数序列都会使用非默认输出,例如 Play Animation Clip Command 中的 On Complete 输出。

在当前版本中已不再是这样。

Exit Sub-Flow Command

自 1.5.0 版本起,引入了 Exit Command,并且可以启用或禁用。当关闭时,仍使用默认退出条件;当启用时,一旦执行 Exit Command,sub-flow 将立即退出。这也是它具有 main in-point 的原因。

传递输入参数

自 1.7.0 版本起,我们也可以向 sub-flow 传递输入值。输入参数通过 Variables 定义,我们将在下一章节中进行说明。