游戏AI——行为树的简单实现(二)基于ECS模式开发行为树

一、设计思路

        基于ECS模式,我们将行为树的层级结构拆分成下图

        其中:       

        (1)NodeComponent只用来用来存储NodeData数据,不包含具体逻辑。

        (2)NodeData,即多分支节点数据、单分支节点数据、叶子节点数据三种。多分支节点数据对应的是组合节点,单分支节点数据对应的是装饰节点,叶子节点数据对应的是行为节点和条件节点。

       

        (3)TaskData,具体执行的任务的数据。可能是根据布尔值,可能是根据条件,可能是根据数量等数据进行具体的执行

       

        (4)BehaviorEntity,主要作为索引

        (5)BehaviorSystem,对应的轮询、节点处理、数据反序列化逻辑都在这里存放

        (6)NodeHandler,具体节点处理的逻辑

        

        (7)NodeDataSerializor,Node数据序列化/反序列化器

        

        (8)TaskDataSerilizor,Task数据序列化/反序列化器

        

二、运行示例

Git库:https://gitee.com/MK_Aliens/StarLightFramework.git 

猜你喜欢

转载自blog.csdn.net/qq_28474981/article/details/83619071