[开发记录] BehaviorTree.cpp行为树
行为树
- 主要使用的是GitHub上的一个开源库
BehaviorTree.cpp
基本概念
行为树是一种树结构的层次节点,通过“tick”信号在树中传递
一个“tick”信号从树的根节点传递到叶子节点,每一个节点都必须返回以下的三个值
SUCCESS
FAILURE
RUNNING
RUNNING
只是这个节点需要更多时间来完成任务
树中的节点有以下类型:

在ActionNode
中有可能会返回Running
结果,我们需要再次"tick"这个节点,直到返回SUCCESS
或FAILURE
节点详解
ControlNode
控制节点的子节点总是按顺序排列的
Sequence
如果节点返回的是SUCCESS
,则"tick"下一个节点,Sequence
有两个变种节点

DecoratorNode
装饰节点,通常只有一个孩子
InverterNode
反转结果,SUCCESS返回FAILURE,FAILURE返回SUCCESS
ForceSuccessNode
子节点返回RUNNING
则返回RUNNING
,否则返回SUCCESS
ForceFailureNode
与上面相同
RepeatNode
重复N次,直到返回失败,N是可以输入的
RetryNode
重复N次,直到返回成功,N是可以输入的
ConditionNode
Fallbacks
可以理解为后备,如果当前节点失败了,则"tick"下一个节点
如果某个子节点返回SUCCESS
,则该节点返回SUCCESS
,且中断后面的所有节点(通过这种方式可以打断异步行为)
有两个变种,主要区别在于子节点返回RUNNING
时"tick"的节点不同

ActionNode
没有子节点,由用户自己自定
标题:[开发记录] BehaviorTree.cpp行为树
作者:chen
地址:http://blog.chen.szkxy.net/blog/articles/2023/03/16/1678962269955.html

0 评论