ECS:Sync points and structural changes


结构性修改Structural changes:     任何导致entity的原型(archetype)变化,或者entity在chunk中的存储位置变化的修改,都叫做结构性修改。     以下操作皆为结构性修改:     创建或销毁entity     添加或移除component     修改shared component的值   同步点Sync points:     ECS中的同步点表示需要等待所有调度的jobs执行完毕的点,会导致卡顿或CPU利用不充分,所以要尽量避免同步点的产生。     结构性修改是触发同步点主要来源。     结构性修改不只是会导致同步点,还会导致之前对component的引用全部失效,包括DynamicBuffer。   解决方案:   使用ECB来缓存structural changes的操作,然后一次执行,而不是贯穿在逻辑中的各种地方。