行为树AI设计及BehaviorTree结构分析\

BehaviorTree树结构如下图:

行为树AI设计及BehaviorTree结构分析\_第1张图片

图1:树的组织结构

BehaviorTree继承Behavior并提供了操作树的方法,ExternalBehavior实例才是可序列化可视化编程载体。具体的每棵树实例是由BehaviorMananger运行时驱动。同时,BehaviorManager有UpdateIntervalType三种更新方式:EveryFrame(每帧更新)、SpecifySecods(在CoroutineUpdate协程定时更新)、Manual(手动更新)

Task生命周期:

行为树AI设计及BehaviorTree结构分析\_第2张图片

图二:Task生命周期


我自己有几个小小总结

1实例个数太多且树的结构非常复杂,会影响帧率稳定。而且不要频繁调用树实例中DisanbleBehavior和EnableBehavior方法,原因:TaskContainsMethod方法对根Task(也就是EntryTask)及所有子Task用反射查找实现了Task哪些方法,耗时严重。我采用的是手动更新,就很方便决定什么时候停更,而不是直接禁止。


2行为树分层结构管理

行为树AI设计及BehaviorTree结构分析\_第3张图片

图三:分层结构

分层处理的目的是减少树中conditions公共条件计算,把策划设计的一颗复杂的树分解,把重要的信息计算放在决策层计算。

例如:

你可能感兴趣的:(行为树AI设计及BehaviorTree结构分析\)