腾讯开源Behaviorc源码学习笔记
源码阅读概念总结
- childStatus 理解为child returned status, 整个行为树的执行以EBTStatus.BT_RUNNING开始执行,childStatus的执行一般情况也是父节点运行EBTStatus.BT_RUNNING,传入失败状态作为childStatus一般情况是为了终结currentTask,从而每个ManaginParent都应该处理这个从而来响应结束当前任务
- 整个行为树的执行,原理为由首节点BehaviorTreeTask的exec方法开始执行,然后updateCurrent,再update, update是实际节点的更新函数, updateCurrent是对update方法的封装,目的是拦截处理currentTask, exec是对update基于updateCurrent的再次封装(参考BehaviorTask的exec函数), 作update的事前(检查节点可更新的precondition),事后处理(设置当前状态为update状态,处理状态,如果结束(失败或者成功),则处理effctor, 如果运行设置最高级管理节点当前任务为本任务)
- 每个节点都有当前状态,而且是子节点返回的状态或者本身更新的状态
- 事件的响应(todo),就是从下(当前任务节点)到上checkEvents,找到事件挂载的节点后就获取事件对象,然后agent,switch到事件绑定的子树上