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

一、设计思路

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

游戏AI——行为树的简单实现(二)基于ECS模式开发行为树_第1张图片

        其中:       

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

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

        游戏AI——行为树的简单实现(二)基于ECS模式开发行为树_第2张图片

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

        游戏AI——行为树的简单实现(二)基于ECS模式开发行为树_第3张图片

        (4)BehaviorEntity,主要作为索引

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

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

        游戏AI——行为树的简单实现(二)基于ECS模式开发行为树_第4张图片

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

        游戏AI——行为树的简单实现(二)基于ECS模式开发行为树_第5张图片

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

        游戏AI——行为树的简单实现(二)基于ECS模式开发行为树_第6张图片

 

二、运行示例

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

游戏AI——行为树的简单实现(二)基于ECS模式开发行为树_第7张图片

你可能感兴趣的:(游戏AI)