行为树随笔

来源:互联网 发布:wish数据分析平台 编辑:程序博客网 时间:2024/04/30 07:03
1.行为树里面的每个结点都有以下状态:

Idle Run Sucess Fail Error几种状态。

2.在执行时每个结点都调用Execute方法,该方法返回执行之后的状态结果,结果可能为结点状态里面的一个。

3.每个结点执行结束(结果为Sucess Fail或者Error)时,执行Finish把逻辑交给父级结点。

4.父级结点收到逻辑流权限时,根据当前子结点的执行结果检测能否跳到下一个子结点CheckNext。如果不能则交给上级结点,如果能则跳到下一个结点MoveNext。

5.MoveNext检测当前是否所有子结点都执行完,如果是则根据当前子结点的执行结果结束自己并且交给上级结点,否则执行下一个结点。
6.关于行为树结点共享,可以把行为树的结构结点看成是配置或者模板BTreeTemplate,他是个静态结构,每个结点也可以看成是模板或者配置BTNodeTemplate,构建之后就不再修改结构 属性和值,也不动态记录任何实例的运行时动态数据。然后每一个智能体都维持有一个BTree,他包含了针对每个特定类型的条件结点和行为结点BTNodeTemplate智能体实例对应的处理逻辑结点BTNode,BNode可以包含实例运行时数据。针对行为结点可能还有OnEnter OnExit OnUpdate等事件处理接口

0 0
原创粉丝点击