Skip to content
OneYoungMean edited this page Dec 26, 2018 · 12 revisions

Entitas

施工进度

【83%】

什么是Entitas??

Entitas是一个超快速且轻量级的C#实体组件系统(ECS)框架,专门用于Unity引擎。内部缓存和快速的组件访问使其成为首屈一指的。它还经过精心设计,可在垃圾收集环境中以最佳方式工作

Unity安装

只需要从[Releases]下载最新的 Entitas.zip from (https://github.com/sschmid/Entitas-CSharp/releases), 然后复制到Unity的Assets/Entitas文件夹中. 有关在Unity中设置Entitas的更多详细说明,请查看step-by-step installation guide.对于纯C#项目,您可以下载EntitasPure 模板项目以快速启动和运行。

#免费和付费版 核心Entitas框架是完全免费且开源的,并附带一个可选的代码生成器,可大大减少您必须编写的样板代码量。但是,在使用它进行重构时需要小心,因为这通常会破坏生成的代码,并且在修复所有错误之前,您将无法重新生成代码。查看常见问题FAQ的解决方法。

要完全消除此问题并帮助支持Entitas的进一步开发,您可以选择从Unity Asset Store 购买Entitas。此版本附带新的Roslyn代码生成器。即使代码中存在错误,这个独立的代码生成器也能正常工作,这使得重构完全无痛,同时也大大减少了迭代时间!查看下面的介绍视频,了解它的工作原理。

Entitas What's New

Roadmap & Activity

Throughput Graph

补充

OYM学习Entitas已有一月有余,虽然还只能说是有一定基础,但是对于一些心得还是先告诫下希望学习的人们:
如果只是需要在untiy当中,请不要使用它,Untiy的ECS系统已经足够的优秀了,请使用Unity来完成所有的步骤。
为什么?

  • 先说优点
    首先,这是一套通用的体系,无论是unity还是C#相关,都可以快速使用这套体系重构你的代码,从go到服务器,你都可以使用这套框架完成所有任务,你甚至可以在服务器上完成所有信息的处理,而不需要经过任何渲染的流程
    其次,它的逻辑是完备的,无论你是一个,还是一堆,还是1millon,你都不会出现无法调用内部一个的情况,这是untiy所不能比拟的,不过在未来,随着unity的发展,它很可能会失去这套优势,因为想要实现它并不困难。
    再者,它有针对untiy的接口,你可以很方便的调试它,看看哪些组件拖累了你的过程。

  • 再是缺点
    首先,就是它的学习曲线非常的陡峭,OYM花了一个月来学习它,而比起unity的ECS,这个时间大概只有一周不到。
    再是可读性,如果你不会Entitas的话,那么它对于你的可读性几乎为0,在多人开发的协作过程中,你很可能永远不会用到这样困难的系统。
    最后是性能,ECS仍然在Unity当中处于优势地位,对于批量的物体而言,Unity的ECS系统具有得天独厚的优势,性能永远是Entitas的50%以上,如果你仅仅只是因为格式统一或者其他理由而开发,我建议您,不要学习它,它更加适合那些拿着100K每月的巨佬制作大型项目,而不是在一个小小的游戏当中统一格式。
    如果你不知道你是否要这么做,最简单的方法就是数一数你项目当中需要成批量制作的物体,他可以是敌人,玩家,刀剑,物品等等,这些拥有大量个体而之间又有微小差异的项目,Entitas拥有得天独厚的优势来处理他们。

  • 最后 如果你跟OYM一样希望在Github发布开源项目,请不要使用它,因为没人会愿意去改这么一堆玩意,他们只会发issue告诉你哪里错了。
    如果你希望搭建一个Entitas混合Unity混合ECS的系统,你唯一去这么做的理由,就是你的同事不小心在你身上浇了一整壶咖啡,或者你的老板决定明天开除你。请不要这么做!这会让其除你以外的其他人彻底抓狂。
    如果你正在寻找unity的加密方式,不希望别人能够看懂你的源码,请大胆的使用它,被其加密过的C++就是杀了俺俺也破译不出来
    以上。