Entitas概况
Entitas是使用C#语言开发的一个快速的轻量级的ECS框架,作为Unity的一个插件使用.在这里我们只分析Entitas的结构以及代码,并不会讲解如何使用它。如果想了解如何使用可以看这里 。
Entitas大致可以分为以下6个模块:Context,Entity,Component,System,Matcher,Group和Collector等,后面我们就通过分析这6个模块的源代码来了解Entitas。
首先我们看下面的图了解以下Entitas的各个模块的基本功能
Entitas优点:
- 天然的低耦合,system和system之间互不干扰
- 天然的逻辑与表现分离,Component只包含数据
- 战斗录像与回放,数据回滚与预测方便,因为逻辑表现分离所以只需要操作纯数据就好了。
- 访问速度快,框架基本无消耗。Entitias内部对Entity,Component以及Group做了大量的缓存。提高CPU的缓存命中
- 完善的代码生成工具,提高开发效率。可以给Conponent添加各种Attributes,从而生成各种特殊的组件,如单例[Unique],事件[Event],主键[EntityIndex]
缺点:
- Entitas是一个非常自闭的框架,所有的事情都只能在其内部完成。
- 并不是游戏中的所有功能模块都适合这个框架,如UI,行为树,动画等
- 因为是纯逻辑,不是oop,所以会增大项目新人的上手难度。
- 项目文件数量会超级的多。
网友评论