Open morrQAQ opened 1 month ago
Important: There’s no protection against accessing non-readonly or mutable static data from within a job. Accessing this kind of data circumvents all safety systems and might crash your application or the Unity Editor.
像某种时光机规则怪谈:在某一个时间极限中的观测行为会使当前时间量子坍缩,结果我们不保证哦~ 但是在当前时间到未来你确定不变的玩意儿,随便观测.
所以要用blittable data types,合理. 然后,因为这个原因(其实最终还是线程安全原因),想要加速游戏不得不使用DOTS,太合理辣,monobehaviour只负责炒饭,炒完给大伙端上来,食材按切菜机要求准备,俺们切的块块的,不然你让厨师切,厨师少做几道菜,不好,不好.
工作几年隐约感觉游戏在这个时代不需要再在引擎架构之上架构啥的了,这玩意儿类似于电影/动漫,当然可以搭一个横店来提供所有类似的电影拍摄,但最终还是全上特效cg即做即拍即弃效率最高. 对于基本的东西引擎和插件提供的差不多了,剩下的就是胶水代码需不需要考虑性能了....DOTS可能是为了这个....多条选择....
ECS一句话总结 :
Class System
{
Dictionary<Entity,Component[]> ec;
}
entity看起来真的好废物啊..... 我不行了我看个文档脑子里面东西怪怪的
玩了一下,感觉DOTS不错,job system也可以,ECS废废的.....DOTS使用的情况本来就不多,ECS还要多写类.如果我搞个复杂实体,还要专门为ECS分一部分blit适用的数据出去,就是为了榨干一点点cpu,卡点算了,毁灭吧.....
job system overview 纯纯抄渲染流程0.0 你blit到render texture~ 我blit到主线程~
毕竟都是并行计算到单一目标的数据处理是吧
想快进到用矢量表达一切然后直接淘汰cpu,被gpt说服.....