使用BTEditor可以生成行为树(BT,Behaviour Tree)的Lua代码,这里对生成的代码进行解析。
(BTEditor的项目主页:https://github.com/bartoleo/BTEditor)
要注意:
1、行为树每个节点都需要向其父节点返回一个值,以允许父节点根据子节点运行情况继续运行。
2、每棵树都有一个根节点,这个节点没有特殊意义。
需要解析的行为树节点的解释(发挥想象力吧,这里的Node还能有很多种~):
一、Composite Node
1、Selector:实现子节点或关系,按定义顺序遍历子节点,直到有一个子节点返回true时停止,并返回true。如果子节点全部返回false,则返回false。
2、RandomSelector:类似Selector,不同之处在于,按照随机顺序遍历子节点。
3、Sequence:实现子节点与关系,按定义顺序遍历子节点,直到有一个节点返回false时停止,并返回false。如果子节点全部返回true,则返回true。
4、Parallel:实现逗号表达式的效果,依次执行所有子节点,返回最后一个子节点的返回值。
5、。。。
二、Behaviour Node
1、Action:执行其中定义的行为,并返回true。
2、ConditionAction:如果条件为真,则执行Action,并返回true;否则,不执行Action,并返回false。
3、。。。
三、Decorator Node
1、Successor:拥有一个子节点,执行子节点后返回true。
2、Failure:拥有一个子节点,执行子节点后返回false。
3、Negate:拥有一个子节点,返回子节点返回值的相反之(true变false,false变true)。
4、。。。
四、Condition Node
1、Filter:如果Filter为真,则执行子节点,并返回true;否则,不执