跳到主要内容

Variables

Variables(变量)指的是可以在 Sequine Flow 对象中使用的局部变量,其作用域仅限于该 Sequine Flow 对象。它的概念与编程语言中的变量基本相同。

以下是 Sequine Flow 支持作为变量使用的数据类型列表:

  • Boolean
  • Integer
  • Float
  • String
  • Vector3
  • UnityEngine.Object

创建 Variable​

在左侧面板中,我们可以点击 Add New Variable 折叠栏来打开变量创建菜单。需要指定变量名称和数据类型。

Create Variable

点击 Add 按钮后,变量会出现在表格中,在那里我们可以重命名变量并修改其初始值。

Created Variable

使用 Variable​

变量的值可以在运行时被修改。要使用和操作变量的值,可以创建两种 Command。这两种 Command 不是通过创建 Command 的上下文菜单生成,而是通过点击变量表格中每一行的箭头按钮生成。

Get Set Variable

1. Getter​

选择 Get 后,会创建一个 getter 类型的 Property Command,可以作为输入属性连接到其他 Command。

Get Variable

通过脚本获取 Variable​

using Calcatz.Sequine;
using UnityEngine;

public class VariableExample : MonoBehaviour {

public SequineFlowComponent sequineFlow;

private void Start() {
float myFloat = sequineFlow.GetVariable<float>(3);
Debug.Log("The float value in variable with ID 3 is: " + myFloat);
}

}

自 1.7.2 版本起,也可以通过变量名称获取变量值。

...
float myFloat = sequineFlow.GetVariable<float>("MyFloat");
...

2. Setter​

选择 Set 后,会创建一个 setter 类型的 Main Command。它既可以作为输入属性连接到其他 Command,也可以通过 Main Connection(白色连接)参与主流程。当执行时,变量的值将被修改为指定的值。如果 setter 的 in-point 未连接,则会显示一个字段供用户手动输入值。

Set Variable

当然,也可以使用其他 Command 的输出作为赋值来源。

Set Variable By Output

请注意,它还具有一个 property out-point。它的行为与 Getter Command 相同,不同之处在于它返回的是执行 Set 操作后的最终值。

通过脚本设置 Variable​

using Calcatz.Sequine;
using UnityEngine;

public class VariableExample : MonoBehaviour {

public SequineFlowComponent sequineFlow;

private void Start() {
sequineFlow.SetVariable<float>(3, 50f);
}

}

自 1.7.2 版本起,也可以通过变量名称设置变量值。

...
sequineFlow.SetVariable<float>("MyFloat", 50f);
...

向 Sub-Flow 传递 Variable​

自 1.7.0 版本起,在使用 Run Sub-Flow Command 执行 Sequine Flow 时,我们可以向指定 Sequine Flow 的 Variables 传递输入值。这可以理解为类似在编程中向函数传递参数。

Sub-Flow Input