以下文档均来源于ECS官网:
https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.html
System Update Order(系统更新顺序)
要使用“组件系统组”来指定系统的更新顺序,您可以在你的system类的声明中加入[UpdateInGroup]属性,这会将你的system放入到一个系统组中。 然后,您可以使用[UpdateBefore]和[UpdateAfter]属性来指定此system在系统组内的更新顺序。
ECS框架创建一系列的默认系统组,您可以使用这些系统组在每帧对应的阶段来更新系统。 您可以将一个组嵌套在另一个组中,以便你的整个系统组在正确的阶段更新的同时,组内各系统之间据各自在组内的顺序进行更新。
Component System Groups(组件系统组)
ComponentSystemGroup类存储了一组相关联的组件系统,它们将按照指定的顺序一起更新。 ComponentSystemGroup派生自ComponentSystemBase,因此在所有重要方面它都与组件系统一样 -- 它可以相对于其他系统进行排序、具有一个OnUpdate()方法等。最重要的是,这就意味着组件系统组可以嵌套在其他的组件系统组内部,形成层次结构。
默认情况下,当调用ComponentSystemGroup的Update()方法时,它会在其子系统列表中的每个子系统上调用Update()。 如果任何子系统本身就是系统组,那么它们将递归更新自己的子系统。 最终会产生一棵系统树,遍历顺序遵循深度优先。

本文档详细介绍了Unity的ECS框架中系统更新顺序的管理方式,包括Component System Groups、System Ordering Attributes以及默认系统组。通过[UpdateInGroup]、[UpdateBefore]和[UpdateAfter]属性来调整系统在组内的顺序。此外,还提到了多世界环境下系统更新的处理,并提供了技巧和提示,强调了避免在ComponentSystemGroup中添加业务逻辑。
最低0.47元/天 解锁文章
335

被折叠的 条评论
为什么被折叠?



