一、设计思路
基于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-ECS.git