在BehaviorDesinger中,条件终止(Conditional Aborts)允许行为树可以动态的响应改变。
一共有4种条件终止类型:
Self
self能够中断当前节点下的任务,即从现在的位置向下延伸LowerPriority
设置为LowerPriority的节点,该节点的第一个Conditional在持续监听中如果发生变化,会中断比该节点优先级低的任务,级从该节点向右的所有节点,包括其父节点中右侧的任务,即所有可能在该节点的Conditional返回后接下来执行的任务(并不会使该节点比该节点左侧的任务优先级高,优先级仍为从左向右依次降低)。当两个 LowerPriority 的节点处在一个父节点下时,第一个LowerPriority会中断第二个LowerPriority,如果想要让两个节点互不中断但同时能够中断这两个节点的某个低优先级任务(更右侧的任务),可以只将第二个节点设置成LowerPriority,并且将第一个节点的Conditional复制到需要中断的低优先级任务前面,然后为这个Conditional和低优先级任务增加一个Composite节点,为Composite选择中断等级为Self,这样就可以等效于第一个任务中断了该行为。