Documentation

Unity Engine


Unity Engine


AddSharedComponent

Adds a shared component to an entity.
Read time 3 minutesLast updated a day ago

Definition

  • Type: Method
  • Namespace: Unity.Entities
  • Assembly: UnityEngine.EntitiesModule

AddSharedComponent<T>(Entity, T)

Adds a shared component to an entity.
public bool AddSharedComponent<T>(Entity entity, T componentData) where T : unmanaged, ISharedComponentData

Parameters

entity

The entity.

componentData

T
The shared component value to set.

Returns

Type

Description

boolReturns false if the entity already has the shared component. The shared component value is set either way.

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.

AddSharedComponent<T>(NativeArray<Entity>, T)

Adds a shared component to multiple entities
public void AddSharedComponent<T>(NativeArray<Entity> entities, T componentData) where T : unmanaged, ISharedComponentData

Parameters

The array of entities.

componentData

T
The shared component value to set.

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.

AddSharedComponent<T>(EntityQuery, T)

Adds an unmanaged shared component to a set of entities defined by a EntityQuery.
public void AddSharedComponent<T>(EntityQuery entityQuery, T componentData) where T : unmanaged, ISharedComponentData

Parameters

entityQuery

The EntityQuery defining a set of entities to modify.

componentData

T
The data to set.

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.