Method AddSharedComponentManaged
AddSharedComponentManaged<T>(Entity, T)
Adds a shared component to an entity.
Declaration
[ExcludeFromBurstCompatTesting("Accesses managed component store")]
public bool AddSharedComponentManaged<T>(Entity entity, T componentData) where T : struct, ISharedComponentDataParameters
| Type | Name | Description | 
|---|---|---|
| Entity | entity | The entity. | 
| T | componentData | The shared component value to set. | 
Returns
| Type | Description | 
|---|---|
| bool | Returns false if the entity already has the shared component. The shared component value is set either way. | 
Type Parameters
| Name | Description | 
|---|---|
| T | The shared component type. | 
Remarks
The fields of the componentData parameter are assigned to the added shared component.
Adding a component to an entity changes its archetype and 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 adding 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.
Exceptions
| Type | Condition | 
|---|---|
| ArgumentException | The Entity does not exist. | 
AddSharedComponentManaged<T>(NativeArray<Entity>, T)
Adds a shared component to an array of entities
Declaration
[ExcludeFromBurstCompatTesting("Accesses managed component store")]
public void AddSharedComponentManaged<T>(NativeArray<Entity> entities, T componentData) where T : struct, ISharedComponentDataParameters
| Type | Name | Description | 
|---|---|---|
| NativeArray<Entity> | entities | The target entities | 
| T | componentData | The shared component value to set. | 
Type Parameters
| Name | Description | 
|---|---|
| T | The shared component type. | 
Remarks
The fields of the componentData parameter are assigned to the added shared component.
Adding a component to an entity changes its archetype and 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 adding 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.
Exceptions
| Type | Condition | 
|---|---|
| ArgumentException | A target Entity does not exist. | 
AddSharedComponentManaged<T>(EntityQuery, T)
Adds a possibly-managed shared component to a set of entities defined by a EntityQuery.
Declaration
[ExcludeFromBurstCompatTesting("Accesses managed component store")]
public void AddSharedComponentManaged<T>(EntityQuery entityQuery, T componentData) where T : struct, ISharedComponentDataParameters
| Type | Name | Description | 
|---|---|---|
| EntityQuery | entityQuery | The EntityQuery defining a set of entities to modify. | 
| T | componentData | The data to set. | 
Type Parameters
| Name | Description | 
|---|---|
| T | The data type of the shared component. | 
Remarks
The fields of the componentData parameter are assigned to all of the added shared components.
Adding a component to an entity changes its archetype and 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.
Chunks that already have component T will still update the component value
to componentData.
Important: This method creates a sync point, which means that the EntityManager waits for all currently running jobs to complete before adding 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.
Exceptions
| Type | Condition | 
|---|---|
| ArgumentException | The Entity does not exist. |