[Unity ECS入门]13.结束

笨木头  2019-12-5 14:33   ECS入门   阅读(2,750)   9条评论

转载请注明,原文地址:http://www.benmutou.com/archives/2843
文章来源:笨木头与游戏开发

关于Unity的ECS,可能大家还有很多疑惑,是的,我也是。

但是,通过这12篇教程,大家多多少少对ECS是有了解的,在这个基础上,大家再去看官方手册,就会轻松很多。

当然,就这12篇教程所学到的东西,是完完全全不能用于实战的。

 

但是,没办法,我必须停止更新教程,因为,我自己还没有真正用ECS实战过,我也还有很多疑惑。

未来,如果有机会的话,再和大家分享进阶的教程。

这里稍微总结一下ECS的思维。

1.纯(Pure

要记住,ECS就是角色分明,组件就是组件,实体就是实体,不要混用。

组件就是存储一些字段;实体就是包含了很多组件,代表了一种实际存在的对象;系统就是负责处理各种逻辑。

2.并行

其实,ECS很多复杂的东西都是因为需要利用多线程导致的。

如果你不喜欢处理那么多复杂的事情,那么,最简单的使用方式就是j继承ComponentSystem:


这样的话,逻辑都在主线程里,非常简单。

但,如果想要享受ECS带来的性能提升,那就不得不考虑并行的问题。

比如,最需要记住的就是,对实体的新增、删除,对组件的新增、删除,都需要利用EntityCommandBuffer来延迟执行。

这也是我们要转变思维的重要一步,时刻记住——并行。

3.查询数据

ECS看起来,似乎一直都在查数据、改数据,所以,弄清楚EntityQuery的用法吧,很重要。

另外,IJobForEach、IJobChunk等各种Job,需要根据实际情况使用,如果你不知道该用哪个,那就先用IJobForEach。

4.System的执行顺序

某些时候,两个System的先后顺序很重要,所以别忘了这件事。

5.组件类型

组件分为普通组件、共享组件、系统状态组件、系统状态共享组件、Buffer组件,在刚开始的时候,选择使用普通组件即可,当你觉得普通组件无法满足要求的时候,你自然会关注到其他组件。

6.更多的疑惑

我个人还有一些疑惑,比如UI事件怎么和ECS配合、状态机等常用的模式在ECS中如何实现等。接下来我会去解决我的这些疑惑,如果有机会和精力的话,再和大家分享吧。

大家也不要就此止步,我的教程只是九牛一毛,还请各位继续学习其他教程。

9 评论

  1. 看过楼主的Cocos教程,虽然没看完(狗头),但是找了几篇DOTS教程发现木头果然很笨,不然像我这样很笨的人怎么也会收获良多

    1. 哈哈哈,是的,我特别能体会什么都不懂的心情,所以写的教程会仔细一些,有些能一笔带过的知识,其实都是研究了好久的

  2. 我觉得这个教程是入门里面讲的最好的, 希望博主继续写一个游戏实战的教程.

    1. 谢谢认可,实战教程的话,得我自己经历了一段时间实战后才有机会出了,目前公司还在等Project Tiny的正式版。

发表评论

电子邮件地址不会被公开。 必填项已用*标注