行为树
https://blog.csdn.net/xiaomogg/article/details/81588132
行为树(BT,Behaviour Tree)
1、行为树每个节点都需要向其父节点返回一个值(可以理解为在执行程序前先通过一个函数来判断JSON数据的子节点是否允许执行),以允许父节点根据子节点运行情况继续运行。
〇、每棵树都有一个根节点(Root node),这个节点没有特殊意义,只是用来开始的。
一、Composite Node(可以理解为行为的关系处理函数)
1、Selector:实现子节点或关系,按定义顺序遍历子节点,直到有一个子节点返回true时停止,并返回true。如果子节点全部返回false,则返回false。
2、Random Selector:类似Selector,不同之处在于,按照随机顺序遍历子节点。
3、Sequence:实现子节点与关系,按定义顺序遍历子节点,直到有一个节点返回false时停止,并返回false。如果子节点全部返回true,则返回true。
4、Parallel:实现逗号表达式的效果,依次执行所有子节点,返回最后一个子节点的返回值。
二、Behaviour Node
1、Action:执行其中定义的行为,并返回true。
2、Condition Action:如果条件为真,则执行Action,并返回true;否则,不执行Action,并返回false。
三、Decorator Node
1、Successor:拥有一个子节点,执行子节点后返回true。
2、Failure:拥有一个子节点,执行子节点后返回false。
3、Negate:拥有一个子节点,返回子节点返回值的相反之(true变false,false变true)。
四、Condition Node
1、Filter:如果Filter为真,则执行子节点,并返回true;否则,不执行子节点,返回false。