ECS Entitas源码分析(一)___概括

Entitas概况

Entitas是使用C#语言开发的一个快速的轻量级的ECS框架,作为Unity的一个插件使用.在这里我们只分析Entitas的结构以及代码,并不会讲解如何使用它。如果想了解如何使用可以看这里 。
Entitas大致可以分为以下6个模块:Context,Entity,Component,System,Matcher,Group和Collector等,后面我们就通过分析这6个模块的源代码来了解Entitas。
首先我们看下面的图了解以下Entitas的各个模块的基本功能
ECS Entitas源码分析(一)___概括_第1张图片
Entitas优点:

  1. 天然的低耦合,system和system之间互不干扰
  2. 天然的逻辑与表现分离,Component只包含数据
  3. 战斗录像与回放,数据回滚与预测方便,因为逻辑表现分离所以只需要操作纯数据就好了。
  4. 访问速度快,框架基本无消耗。Entitias内部对Entity,Component以及Group做了大量的缓存。
  5. 由于Entitas数据的连续性,可以提高CPU的缓存命中
  6. 完善的代码生成工具,提高开发效率。可以给Conponent添加各种Attributes,从而生成各种特殊的组件,如单例[Unique],事件[Event],主键[EntityIndex]

缺点:

  1. Entitas是一个非常自闭的框架,所有的事情都只能在其内部完成。
  2. 并不是游戏中的所有功能模块都适合这个框架,如UI,行为树,动画等
  3. 因为是纯逻辑,不是oop,所以会增大项目新人的上手难度。
  4. 项目文件数量会超级的多。
  5. 需要生成代码,对热更新不太友好。

<下一篇>ECS Entitas源码分析(二)__Context

你可能感兴趣的:(ECS,Entitias)