[unity]NodeCanvas_各个节点作用

1.Leafs(叶柄)

叶柄没有子节点,位于树的末端。

Action(行为)

行为

行为节点将执行分配的动作任务。“行为”节点将返回“正在运行”,直到“行为任务”完成时为止,此时它将根据分配的“行为任务”返回成功或失败。NC附带了各种不同的“行动任务”以供使用。

Success:成功完成分配的行为任务后

Failure:分配的行为任务完成失败后

Running:分配的操作任务尚未完成时。

Condition(条件)

条件

条件节点将执行条件任务,并根据该条件任务返回成功或失败。 NC附带各种要使用的条件任务。
Success:如果分配的条件任务为真
Failure:如果分配的条件任务为假

2.Composites(复合行为)

Sequence(序列)

在这里插入图片描述

Sequencer按从最高优先级到最低优先级(从左到右)的顺序执行其子节点。

成功:当所有子节点都成功完成
失败:当任何子节点返回失败时
正在运行:当前正在执行的子节点正在运行时

请添加图片描述

Selector(选择器)

在这里插入图片描述

Selector按从高到低的优先级(从左到右)的顺序执行其子节点。

在这里插入图片描述

按顺序或随机执行子节点,直到返回Success和Success的第一个节点。如果返回成功,则返回失败。如果是动态的,则会重新评估更高优先级的子级状态,如果返回成功,选择器将选择该子级,并在成功时立即退出

成功:当任何子节点返回成功。
失败:当所有子节点都返回失败时。
正在运行:当前正在执行的子节点正在运行时。

请添加图片描述

Probability Selector(概率选择器)

在这里插入图片描述

概率选择器将根据被选择的机会选择并执行子节点。如果该选定子级返回成功,则概率选择器还将返回成功。如果返回失败,则将选择一个新的子代。如果没有孩子返回成功,则概率选择器将返回失败,或者如果引入了“失败机会”,则可能立即返回失败。

成功:当选定的子节点返回成功时。
失败:选定的子节点返回失败时,或者由于“失败机会”而未选择任何子节点。
正在运行:当选定的子节点返回运行时。

请添加图片描述

Priority Selector(优先选择器)

image

优先级选择器与普通选择器相似,但是将根据每个子级具有的优先级来选择子级执行的顺序。连接子节点后,将显示优先权重,您可以直接或通过Blackboard变量进行更改。简而言之就是执行最高权重的子级

成功: 第一个子节点返回成功时。
失败:当所有子节点都返回失败时。
正在运行: 当前子节点正在运行。

请添加图片描述

Parallel(并行)

image

并行将同时执行其所有子级。可以将其设置为具有Sequencer或Selector的策略,如下所示:

如果设置为First Failure,则任何子代返回Failure后,并行将重置所有当前的Running子代,并返回Failure。否则,当所有孩子都返回成功后,它将返回成功。

如果设置为First Success,则任何子级返回Success时,并行将重置所有当前的Running子级,并也返回Success。否则,当所有孩子都返回失败后,它将返回失败。

成功:如果设置为“首次成功”,则任何孩子返回成功。如果设置为“首次失败”,则当所有孩子都成功完成时。
失败:如果设置为“首次失败”,则任何子级返回失败时。如果设置为“首次成功”,则所有子项均以失败告终。
正在运行:任何孩子在跑步时。

请添加图片描述

Binary Selector (二进制选择器)

在这里插入图片描述

基于条件任务评估快速执行左侧或右侧子节点的方法.类似于if-else

请添加图片描述

Flip Selector(反转选择器)

在这里插入图片描述

翻转选择器的工作方式与普通选择器类似,但是一旦子节点返回成功,它就会移到末尾(右)。因此,以前将始终先检查失败的孩子,最近再检查成功的孩子。每次执行完后将该子级放置末尾处

成功: 当子级返回成功时。
失败: 当所有子级都返回失败时。
正在运行:当前子级正在运行。

请添加图片描述

Switch(开关)

在这里插入图片描述

Switch节点可以切换Enum或Integer值。根据当前的Enum或整数值,它将执行相应的子节点。如果另一个子节点先前在运行,它将被中断。连接子节点后,连接将读取枚举或整数值。

成功:当前子节点返回成功时。
失败:当前子节点返回失败,或者枚举或整数值相对于连接的子节点数超出范围。
正在运行:当前子节点返回正在运行。

请添加图片描述
请添加图片描述

Step Iterator(步骤迭代器)

在这里插入图片描述

步骤迭代器类似于选择器。如果子节点返回成功,则返回成功,如果所有子节点返回失败,则返回失败。唯一的区别是,它会记住哪个子级返回成功,并从下一个子级开始下一次执行,以便在下次再次执行步骤迭代器时按顺序进行。

成功:子节点返回成功时。
失败:当所有子节点都返回失败时。
正在运行:当前子节点正在运行时。

当两个Sequence上下级的时候,若子级Sequence的子级是failure,则重新执行优先级最高的
当两个Sequence上下级的时候,若子级Sequence的子级是failure,则重新执行优先级最高的
但是step的子级是failture也依然继续执行后面的action
但是step的子级是failture也依然继续执行后面的action

3.Decorators(装饰节点)

Interruptor(中断节点)

在这里插入图片描述

Interuptor被分配了条件任务。如果条件为真或变为真,则子节点将在运行中被中断,并且中断器将返回失败。否则,中断器将返回子节点返回的任何内容。

成功:子节点返回成功时。
失败:子节点返回失败时,或者即使子节点正在运行时,分配的条件为true或变为true。(打断了)。
正在运行:子节点返回运行时。

请添加图片描述

Conditional(条件节点)

仅当指定的条件为true时,条件语句才会执行其子节点,然后它将返回子节点返回的任何内容。如果条件为假,但子节点尚未运行,它将返回失败。因此,换句话说,如果条件即使成功了一帧,则子节点将执行并且即使条件不再成立也不会被中断。

成功:子节点返回成功时。
失败:子节点返回失败,或者条件为false且子节点尚未运行时。
运行:子节点返回运行时。

Inverter(逆变器)

在这里插入图片描述

逆变器会将其子节点的成功和失败返回状态重新映射为相反的状态。 成功:将子节点重新映射到成功时。

成功:子节点返回失败时。
失败:子节点返回成功时。
正在运行:子节点正在运行时。

请添加图片描述

Monitor(监视器)

在这里插入图片描述

监视装饰子节点的返回状态,并在这种情况下执行操作返回到父节点的最终状态可以是原始装饰子节点状态,也可以是新装饰操作状态
若子级返回success,则执行monitor
请添加图片描述

Optional (无状态)

在这里插入图片描述

不管子级返回什么都不回去执行子级

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(暂停节点)

在这里插入图片描述

如果子节点的运行时间超过以秒为单位指定的时间,则超时装饰器将中断子节点“运行”。否则,它将返回子节点返回的任何内容。
等待规定的时常,没有完成就返回false
成功:当子级返回成功时。
失败:当子级返回失败或超时时。
正在运行:子级返回跑步时。

Wait Until(等待,直到)

在这里插入图片描述

Wait Until将返回运行,直到分配的条件任务变为真。如果在子级被勾选后条件变为假,它将不会中断它。仅当孩子尚未运行时才检查该条件。
和TimeOut不同的是TImeout 是等待子对象返回一个ture,而waitUntil是等待一个条件

成功:当子级返回成功时。
失败:当子级返回失败时。
正在运行:当子级返回正在运行或条件为假时。

Merge

在这里插入图片描述

可以多个线并到一个merge中,没懂什么意思
在这里插入图片描述

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ENABLE_UNITY_COLLECTIONS_CHECKS是Unity中的一个编译器宏定义,用于启用Unity Collections库中的线程和处置安全检查。这个宏定义可以确保在使用Unity Collections库时,对于线程安全和资源释放的问题进行检查,以避免潜在的错误。\[1\] Unity Collections库提供了一些关键的类数组类型,如NativeArray和NativeSlice,以及一些数据结构,如NativeList和NativeQueue,这些都受到ENABLE_UNITY_COLLECTIONS_CHECKS宏定义的影响。\[2\] 但是需要注意的是,ENABLE_UNITY_COLLECTIONS_CHECKS主要用于单元测试框架中的断言,而不是用于生产代码的测试。因此,在生产代码中使用这个宏定义可能会导致性能下降,因为它会增加额外的检查和开销。\[3\] #### 引用[.reference_title] - *1* *3* [unity断言_Unity断言库](https://blog.csdn.net/culiao6493/article/details/108642656)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [[Unity ECS] Unity Collections Package](https://blog.csdn.net/u013716859/article/details/122278432)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值