1.Leafs(叶柄)
叶柄没有子节点,位于树的末端。
Action(行为)
行为-
行为节点将执行分配的动作任务。“行为”节点将返回“正在运行”,直到“行为任务”完成时为止,此时它将根据分配的“行为任务”返回成功或失败。NC附带了各种不同的“行动任务”以供使用。
-
Success:成功完成分配的行为任务后
-
Failure:分配的行为任务完成失败后
-
Running:分配的操作任务尚未完成时。
Condition(条件)
条件- 条件节点将执行条件任务,并根据该条件任务返回成功或失败。 NC附带各种要使用的条件任务。
- Success:如果分配的条件任务为真
- Failure:如果分配的条件任务为假
2.Composites(复合行为)
Sequencer(序列)
Sequencer按从最高优先级到最低优先级(从左到右)的顺序执行其子节点。
- 成功:当所有子节点都成功完成
- 失败:当任何子节点返回失败时
- 正在运行:当前正在执行的子节点正在运行时
Selector(选择器)
Selector按从高到低的优先级(从左到右)的顺序执行其子节点。
- 成功:当任何子节点返回成功。
- 失败:当所有子节点都返回失败时。
- 正在运行:当前正在执行的子节点正在运行时。
Probability Selector(概率选择器)
概率选择器将根据被选择的机会选择并执行子节点。如果该选定子级返回成功,则概率选择器还将返回成功。如果返回失败,则将选择一个新的子代。如果没有孩子返回成功,则概率选择器将返回失败,或者如果引入了“失败机会”,则可能立即返回失败。
- 成功:当选定的子节点返回成功时。
- 失败:选定的子节点返回失败时,或者由于“失败机会”而未选择任何子节点。
- 正在运行:当选定的子节点返回运行时。
Priority Selector(优先选择器)
image优先级选择器与普通选择器相似,但是将根据每个子级具有的优先级来选择子级执行的顺序。连接子节点后,将显示优先权重,您可以直接或通过Blackboard变量进行更改。
- 成功: 第一个子节点返回成功时。
- 失败:当所有子节点都返回失败时。
- 正在运行: 当前子节点正在运行。
Parallel(并行)
image并行将同时执行其所有子级。可以将其设置为具有Sequencer或Selector的策略,如下所示:
如果设置为First Failure,则任何子代返回Failure后,并行将重置所有当前的Running子代,并返回Failure。否则,当所有孩子都返回成功后,它将返回成功。
如果设置为First Success,则任何子级返回Success时,并行将重置所有当前的Running子级,并也返回Success。否则,当所有孩子都返回失败后,它将返回失败。
- 成功:如果设置为“首次成功”,则任何孩子返回成功。如果设置为“首次失败”,则当所有孩子都成功完成时。
- 失败:如果设置为“首次失败”,则任何子级返回失败时。如果设置为“首次成功”,则所有子项均以失败告终。
- 正在运行:任何孩子在跑步时。
Flip Selector(反转选择器)
翻转选择器的工作方式与普通选择器类似,但是一旦子节点返回成功,它就会移到末尾(右)。因此,以前将始终先检查失败的孩子,最近再检查成功的孩子。
- 成功: 当子级返回成功时。
- 失败: 当所有子级都返回失败时。
- 正在运行:当前子级正在运行。
Switch(开关)
Switch节点可以切换Enum或Integer值。根据当前的Enum或整数值,它将执行相应的子节点。如果另一个子节点先前在运行,它将被中断。连接子节点后,连接将读取枚举或整数值。
- 成功:当前子节点返回成功时。
- 失败:当前子节点返回失败,或者枚举或整数值相对于连接的子节点数超出范围。
- 正在运行:当前子节点返回正在运行。
Step Iterator(步骤迭代器)
步骤迭代器类似于选择器。如果子节点返回成功,则返回成功,如果所有子节点返回失败,则返回失败。唯一的区别是,它会记住哪个子级返回成功,并从下一个子级开始下一次执行,以便在下次再次执行步骤迭代器时按顺序进行。
- 成功:子节点返回成功时。
- 失败:当所有子节点都返回失败时。
- 正在运行:当前子节点正在运行时。
3.Decorators(装饰节点)
Interruptor(中断节点)
Interuptor被分配了条件任务。如果条件为真或变为真,则子节点将在运行中被中断,并且中断器将返回失败。否则,中断器将返回子节点返回的任何内容。
- 成功:子节点返回成功时。
- 失败:子节点返回失败时,或者即使子节点正在运行时,分配的条件为true或变为true。(打断了)。
- 正在运行:子节点返回运行时。
Conditional(条件节点)
仅当指定的条件为true时,条件语句才会执行其子节点,然后它将返回子节点返回的任何内容。如果条件为假,但子节点尚未运行,它将返回失败。因此,换句话说,如果条件即使成功了一帧,则子节点将执行并且即使条件不再成立也不会被中断。
- 成功:子节点返回成功时。
- 失败:子节点返回失败,或者条件为false且子节点尚未运行时。
- 运行:子节点返回运行时。
Inverter(逆变器)
逆变器会将其子节点的成功和失败返回状态重新映射为相反的状态。 成功:将子节点重新映射到成功时。
- 成功:子节点返回失败时。
- 失败:子节点返回成功时。
- 正在运行:子节点正在运行时。
Repeater(中继器)
Repeater会重复其子级Number次,或者直到它返回指定的状态,或者Forever。
- 成功:如果为“Repeat Times(重复次数)”,则子节点在最后一次重复时返回成功。如果为“Repeat Until(重复直到)”,则子节点返回成功且所需状态为成功时。
- 失败:如果为“Repeat Times(重复次数)”,则子节点在最后一次重复时返回失败。如果为“Repeat Until(重复直到)”,则子节点返回失败且所需状态为失败时。
- 运行:只要重复。
Filter(过滤器)
按特定的Numbers次数或每特定的时间量(例如Cooldown)过滤对其子节点的访问。默认情况下,如果将其过滤,则关于其父节点,该节点将被视为“不活动”。取消选择此选项将返回失败。
- 成功:访问子节点并返回成功时。
- 失败:访问子节点并返回失败时,或“受限时不活动”被关闭。
- 正在运行:访问子节点并返回运行。
Iterator(迭代器)
迭代器将迭代从黑板获取的列表。在每次迭代中,将使用提供的名称将当前迭代的元素保存在同一黑板上,并将执行子节点。
可以选择将Iterator设置为在装饰的节点返回成功或失败后立即终止迭代。如果未设置任何终止条件(NONE),或者如果列表已被迭代且不满足终止条件,则Iterator将返回上一次返回的迭代子执行的结果。
如果选中了“重置索引”,则迭代器将在重置时将当前迭代的索引重置为零,否则该索引将保留,除非它是列表的最后一个索引。将其视为“for each”。
- 成功:当列表被迭代并且子节点返回成功时,或者如果设置为“First Success(首次成功)”,则子节点首次返回成功。
- 失败:迭代列表并且子节点返回失败,或者如果设置为“‘First Failure(首次失败)”,则子节点首次返回失败。
- 运行:只要迭代就可以了。
Timeout(暂停节点)
如果子节点的运行时间超过以秒为单位指定的时间,则超时装饰器将中断子节点“运行”。否则,它将返回子节点返回的任何内容。
- 成功:当子级返回成功时。
- 失败:当子级返回失败或超时时。
- 正在运行:子级返回跑步时。
Wait Until(等待,直到)
Wait Until将返回运行,直到分配的条件任务变为真。如果在子级被勾选后条件变为假,它将不会中断它。仅当孩子尚未运行时才检查该条件。
成功:当子级返回成功时。
失败:当子级返回失败时。
正在运行:当子级返回正在运行或条件为假时。
Optional(可选结果)
Optional Decorator在执行装饰的子节点时不考虑其成功或失败返回状态,因此就预期状态而言,它对于父节点是可选的。
- 成功:永远不会。
- 失败:从不。
- 正在运行:子节点正在运行时。
Guard(守护)
如果具有相同指定令牌的另一个Guard已经在保护(运行)该令牌,则防止装饰的子级运行。对于为同一代理运行的所有行为树,保护是全局的。
受保护时,可以将其设置为返回失败或正在运行。
- 成功:当子级返回成功时。
- 失败:当子级返回失败或保护处于活动状态并设置为受保护时返回失败。
- 正在运行:当子级返回运行或受保护时处于活动状态,并设置为在受保护时返回运行。
Override Agent(替代代理)
Override Agent将为行为树的其余部分以及直接从Blackboard变量中选择或获取的游戏对象设置另一个Agent。这意味着该装饰器下面的每个节点现在都会被该新代理选中。此装饰器是NodeCanvas允许您从单个“主”行为树控制多个代理或动态更改代理的方式之一。
- 成功:子节点返回成功时。
- 失败:子节点返回失败时。
- 运行:子节点返回运行时。
4.Sub-Behaviours(子行为)
SubTree(行为树)
子树是整个其他行为树。SubTree节点将返回分配的行为树的根节点(“开始”)返回的任何内容。根行为树的代理和黑板将向下传递到子树,因此所有可用的黑板变量将相同,并且也可用于子树。
成功:当SubTree的根节点返回成功时。
失败:当SubTree的根节点返回失败时。
正在运行:当SubTree的根节点返回“正在运行”时。
NestedFSM(状态机)
可以为嵌套的FSM分配整个FSM。执行后,FSM将启动。只要FSM正在运行,NestedFSM节点将返回“正在运行”。您可以为成功指定FSM的一种状态,为失败指定另一种状态。一旦嵌套的FSM进入任何一种状态,FSM将停止,并且该节点将相应地返回成功或失败。否则,当嵌套的FSM完成时,它将返回成功。此行为树的代理和黑板将传递给嵌套FSM,因此根行为树的所有可用变量也将相同,并且可用于嵌套FSM。
成功:当嵌套FSM进入选定的成功状态时,或嵌套FSM完成时。
失败:嵌套的FSM进入选定的失败状态时。
运行:只要嵌套FSM正在运行。
网友评论