![0b352aa34d465f7e4b8f7b650662d1ad.png](https://img-blog.csdnimg.cn/img_convert/0b352aa34d465f7e4b8f7b650662d1ad.png)
仅仅记录下怎么使用Unity继承的ECS框架,不会吹这个框架多么NB,毕竟用他们的话来说"我们才刚刚发力",况且还是源码都不给看的垃圾引擎。
1 为什么要用
以前的Prefab是GameObject上面挂在脚本,脚本中定义属性和方法。如果想要加载、处理这种Prefab几百个就是上限了,因为Prefab中会有很多用不到的属性、方法,这些都需要加载到内存中,占用空间的同时调用、查找是也会因为有很多冗余的内容拖慢速度。
2 ECS解决问题方法
ECS使用Entity代替以前的实例GameObject,Entity不可以挂载方法只可以挂载属性,方法会用Job代替,优点1 方法独立出来处理属性去冗余 2 Job可以多线程
相对于以前每个脚本都包含自己的处理方法,ECS把方法独立成第三方结构来处理属性,使方法更加独立。
3 使用流程(注:Data也叫做Component)
以前:加载Prefab->实例化Prefab->挂载脚本->脚本执行生命周期
ECS:加载Prefab->Prefab转换Entity->实例化Entity->Entity挂载Data->Job处理Entity的data
Prefab转换Entity
public GameObject goTemplete;
Entity