Method SetSharedComponentManaged
SetSharedComponentManaged<T>(Entity, T)
Sets the shared component of an entity.
Declaration
[ExcludeFromBurstCompatTesting("Accesses managed component store")]
public void SetSharedComponentManaged<T>(Entity entity, T componentData) where T : struct, ISharedComponentDataParameters
| Type | Name | Description | 
|---|---|---|
| Entity | entity | The entity | 
| T | componentData | A shared component object containing the values to set. | 
Type Parameters
| Name | Description | 
|---|---|
| T | The shared component type. | 
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.
SetSharedComponentManaged<T>(NativeArray<Entity>, T)
Sets the shared component on an array of entities
Declaration
[ExcludeFromBurstCompatTesting("Accesses managed component store")]
public void SetSharedComponentManaged<T>(NativeArray<Entity> entities, T componentData) where T : struct, ISharedComponentDataParameters
| Type | Name | Description | 
|---|---|---|
| NativeArray<Entity> | entities | The target entities | 
| T | componentData | A shared component object containing the values to set. | 
Type Parameters
| Name | Description | 
|---|---|
| T | The shared component type. | 
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.
SetSharedComponentManaged<T>(EntityQuery, T)
Sets the shared component of all entities in the query.
Declaration
[ExcludeFromBurstCompatTesting("Accesses managed component store")]
public void SetSharedComponentManaged<T>(EntityQuery query, T componentData) where T : struct, ISharedComponentDataParameters
| Type | Name | Description | 
|---|---|---|
| EntityQuery | query | The query where matching entities will be assigned the shared component to. | 
| T | componentData | A shared component object containing the values to set. | 
Type Parameters
| Name | Description | 
|---|---|
| T | The shared component type. | 
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.
SetSharedComponentManaged<T>(ArchetypeChunk, T)
Sets the shared component on a chunk.
Declaration
[ExcludeFromBurstCompatTesting("Accesses managed component store")]
public void SetSharedComponentManaged<T>(ArchetypeChunk chunk, T componentData) where T : struct, ISharedComponentDataParameters
| Type | Name | Description | 
|---|---|---|
| ArchetypeChunk | chunk | The target chunk | 
| T | componentData | An unmanaged shared component object containing the values to set. | 
Type Parameters
| Name | Description | 
|---|---|
| T | The shared component type. | 
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.