以下文档均来源于ECS官网:
https://docs.unity3d.com/Packages/[email protected]/manual/ecs_entities.html
WriteGroups(写入组)
常见的ECS模式是让一个系统读取一组输入组件,然后写出到另一组输出组件。 但是,您可能希望覆盖该系统并根据您自己的输入集来更新输出组件。
WriteGroups允许您在不必更改原有系统的情况下,重新定义该系统是否写入指定的组件。 WriteGroup属性用来标识当前组件将成为指定组件的写入源。 对于那些定义了WriteGroup属性的组件,系统在筛选将要更新的实体时,还必须对EntityQuery筛选对象启用WriteGroup选项。
使用WriteGroup属性来定义WriteGroup。此属性将输出目标组件的类型作为参数。 在需要更新目标组件时,需要将该属性放在将会修改目标组件的每个源组件上。 例如,以下声明指定了组件A是针对目标组件W的写入组的一部分:
[WriteGroup(typeof(W))]
public struct A : IComponentData{ public int Value; }
请注意,WriteGroup的目标组件必须包含在查询中,并以可写方式进行访问。否则,该查询的WriteGroup将被忽略。
当你在查询中启用WriteGroup选项时,查询会将所有位于WriteGroup中的组件添加到查询的None列表中,除非它们已经被