行为树有根节点,有控制流节点,处理节点。
根节点没有父节点,只有一个子节点。
控制流节点只有一个父节点,至少一个子节点。
处理节点只有一个父节点,没有子节点。
行为树的运行就是 从根节点以一定的频率发送tick给他的子节点。这个tick就是一个启用的信号,它允许子节点进行自己的处理。 当一个处理节点是是允许工作的时候,它向自己的父节点返回三种状态:如果工作完成了返回success,如果工作没有完成返回running,如果其他的情况则返回failure。
控制流节点
控制流节点用来控制组成他的次级任务(子节点)。一个控制流节点可能是选择节点selector (fallback)或者序列节点sequence node。 他们轮流运行自己的子节点。 当一个子节点运行完成,并且将它的状态返回给控制流节点,然后控制流节点再决定是否继续运行自己的其他子节点还是停止(?返回上级节点)。
选择节点
选择节点用来找出并且执行自己第一个没有返回false的子节点。一旦它的一个子节点返回running或者successs,那么它就会立即返回至上级节点。
序列节点
序列节点是用来找出并且处理自己第一个没有返回success的子节点。当它的一个子节点返回failure或者running,那么这个序列节点就会立即返回上级节点。
具体更多的细节以及代码实现需要我继续研究。