分层机制 - 复杂行为树的行为控制

时间:2024-03-15 08:13:26

复杂行为树

以NodeCanvas为例,一颗复杂的行为树可以表现如下

分层机制 - 复杂行为树的行为控制


这种结构有个弊端:

条件判定,不方便法执行中断

比如其中一棵子树处于Running状态,这时候如果需要一个条件判定,打断这个Running状态,是非常困难的。

即便在每个任务的条件节点里去判断,条件也会变得复杂而难以管理


解决办法

采用分层机制,分为决策层与执行层两部分。

所有的决策统一在一棵子树处理,按照决策的结果,在另一颗子树里检测决策的结果,然后执行相应的行为。

如下图所示:

分层机制 - 复杂行为树的行为控制

注意点

1. 决策层可以设置为永远返回true,意义在于不去影响整个行为树的结果

2. 执行层依据决策的结果,去判断是否要执行某种行为,如果决策的结果不匹配任何行为,则返回false

3. 决策层,如果逻辑非常复杂,其实也可以不放在行为树里面,直接通过代码来集中处理也是可以的,会更加灵活

4. 执行层,只关心决策的结果,和具体的行为