SetSharedComponent
Sets the shared component of all entities in the query.
Read time 3 minutesLast updated 3 days ago
Definition
- Type: Method
- Namespace: Unity.Entities
- Assembly: UnityEngine.EntitiesModule
SetSharedComponent<T>(EntityQuery, T)
Sets the shared component of all entities in the query.
public void SetSharedComponent<T>(EntityQuery query, T componentData) where T : unmanaged, ISharedComponentData
Parameters
The query where matching entities will be assigned the shared component to.
Remarks
The component data stays in the same chunk, the internal shared component data indices will be adjusted.
Important: This method creates a sync point, which means that the EntityManager waits for all currently running jobs to complete before setting the component. No additional jobs can start before the method is finished. A sync point can cause a drop in performance because the ECS framework might not be able to use the processing power of all available cores.
SetSharedComponent<T>(Entity, T)
Sets the shared component of an entity.
public void SetSharedComponent<T>(Entity entity, T componentData) where T : unmanaged, ISharedComponentData
Parameters
The entity
Remarks
Changing a shared component value of an entity results in the entity being moved to a different chunk. The entity moves to a chunk with other entities that have the same shared component values. A new chunk is created if no chunk with the same archetype and shared component values currently exists.
Important: This method creates a sync point, which means that the EntityManager waits for all currently running jobs to complete before setting the component. No additional jobs can start before the method is finished. A sync point can cause a drop in performance because the ECS framework might not be able to use the processing power of all available cores.
SetSharedComponent<T>(NativeArray<Entity>, T)
Sets the shared component value on an array of entities
public void SetSharedComponent<T>(NativeArray<Entity> entities, T componentData) where T : unmanaged, ISharedComponentData
Parameters
The target entities
Remarks
Changing a shared component value of an entity results in the entity being moved to a different chunk. The entity moves to a chunk with other entities that have the same shared component values. A new chunk is created if no chunk with the same archetype and shared component values currently exists.
Important: This method creates a sync point, which means that the EntityManager waits for all currently running jobs to complete before setting the component. No additional jobs can start before the method is finished. A sync point can cause a drop in performance because the ECS framework might not be able to use the processing power of all available cores.
SetSharedComponent<T>(ArchetypeChunk, T)
Sets the shared component on a chunk.
public void SetSharedComponent<T>(ArchetypeChunk chunk, T componentData) where T : unmanaged, ISharedComponentData
Parameters
The target chunk
Remarks
Changing a shared component value of a chunk results effectively changes the value for all entities in that chunk. This is generally more efficient than setting the values individually on each entity.
Important: This method creates a sync point, which means that the EntityManager waits for all currently running jobs to complete before setting the component. No additional jobs can start before the method is finished. A sync point can cause a drop in performance because the ECS framework might not be able to use the processing power of all available cores.