BehaviorTree树结构如下图:
图1:树的组织结构
BehaviorTree继承Behavior并提供了操作树的方法,ExternalBehavior实例才是可序列化可视化编程载体。具体的每棵树实例是由BehaviorMananger运行时驱动。同时,BehaviorManager有UpdateIntervalType三种更新方式:EveryFrame(每帧更新)、SpecifySecods(在CoroutineUpdate协程定时更新)、Manual(手动更新)
Task生命周期:
图二:Task生命周期
我自己有几个小小总结
1实例个数太多且树的结构非常复杂,会影响帧率稳定。而且不要频繁调用树实例中DisanbleBehavior和EnableBehavior方法,原因:TaskContainsMethod方法对根Task(也就是EntryTask)及所有子Task用反射查找实现了Task哪些方法,耗时严重。我采用的是手动更新,就很方便决定什么时候停更,而不是直接禁止。
2行为树分层结构管理
图三:分层结构
原文:https://www.cnblogs.com/baolong-chen/p/11929706.html