返回

NodeCanvas状态机节点

1.Action State(动作状态)

动作状态节点本身包含一个动作列表。在编辑器上,分配的动作将并行执行或依次执行。可以在检查器中设置。只要所有行动都完成,状态就被认为已经完成。在“播放”模式下,正在运行的动作将在其前面标有播放图标。

OnEnter:列出的所有动作将执行(OnExecute) OnExit:列出的所有操作将停止(OnStop) Finished:列出的所有动作均已结束(EndAction)

您可以通过选中 “Repeat State Actions”(重复状态操作)来选择是否要重复列出的动作。 您还可以通过动作列表下方的相关GUI控件设置是要列出的动作依次运行还是并行运行。

2.Any State(任意状态)

Any State节点用于根据条件从任何状态转换为任何其他状态。它可以具有不断检查的任意数量的转换。如果任何转换的条件为真,则FSM的当前状态(无论是哪种状态)都将退出,而任何状态转换的目标之一将进入。

您还可以标记 “Don’t Re-Trigger Active States”(不要重新触发活动状态),以防止“任何状态”转换为已经活动的状态。

3.Concurrent (并发状态)

FSM启动后,并发状态节点将立即执行,并且并行于任何其他状态。这本身不是状态,因此它既没有传入也没有传出转换。FSM完成后,该状态的操作将停止。

OnEnter:列出的所有动作将执行(OnExecute) OnExit:列出的所有操作将停止(OnStop) Finished:列出的所有动作均已结束(EndAction)

4.Pass(通道)

此节点没有功能,您可以将其用于组织。与空动作状态(即使为空也总是生成一帧)相比,传出转换将立即在输入此节点的同一帧中计算。

5.Super Action State(超级动作状态)

超级操作状态对何时执行操作提供了更好的控制。如果OnUpdate列表中有任何动作,那么这个状态永远不会自己完成,因此在这种情况下OnFinish转换将永远不会被调用。当状态退出时,仅对1帧调用OnExit操作。

6.BehaviourTree(嵌套行为树)

嵌套行为树节点被分配了整个行为树。输入后,将基于检查器中选择的设置一次或永久执行“行为树”。如果设置为“Run Once”(运行一次),则在完成一个行为树循环后,此状态将立即完成。

您可以选择指定两个要发送的事件,一个事件用于嵌套行为树的根节点状态返回成功时,另一个事件用于返回故障时。只要发生任何一种,事件都会被发送。在此节点的转换上使用“检查事件条件”来利用该事件。

嵌套的行为树状态非常强大,因为您可以使行为的顶层具有广泛的状态,并且在每个状态下都可以使用行为树更深入地定义状态的行为!

OnEnter:行为树将开始 OnExit:行为树将停止 Finished:完成行为树后

暂停此FSM时,如果此节点为当前FSM状态,则嵌套行为树也将暂停。