条件执行节点(IfElse)是behaviac组件的一个扩展或快捷方式。

条件执行节点必须要有3个子节点,第一个子节点是条件分支,第二个子节点是“真时执行”分支,第三个子节点是“假时执行”分支。如果条件为真,那么执行“真时执行”分支;否则,执行“假时执行”分支。

而条件执行节点的执行结果则根据具体执行分支的执行结果来决定,如下图所示:

ifelse

如果不使用条件执行节点,完全可以用序列(Sequence)和选择(Selector)节点来实现相同的功能,只不过没有条件执行节点简洁。

另外,条件执行节点的“条件”分支,还可以挂上动作节点甚至是一棵子树。比如挂上动作节点时,如果该动作节点返回Running,则条件执行节点也返回Running,并且该条件一直持续执行,直到动作节点返回Success或Failure,则继续相应的执行“真时执行”或“假时执行”分支。

具体的执行逻辑可以查看behaviortree/nodes/composites/ifelse.cpp

发表评论

电子邮件地址不会被公开。 必填项已用*标注