分层机制

发布于:2021-10-21 16:29:11

复杂行为树

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






这种结构有个弊端:


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


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


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




解决办法

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


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


如下图所示:




注意点

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


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


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


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

相关推荐

最新更新

猜你喜欢