Version: Unity 7.0 Alpha (7000.0)
LanguageEnglish
  • C#

EntityManager.AddSharedComponent

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Declaration

public bool AddSharedComponent(Entity entity, T componentData);

Parameters

Parameter Description
entity The entity.
componentData The shared component value to set.

Returns

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

Description

Adds a shared component to an entity.

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.


Declaration

public void AddSharedComponent(NativeArray<Entity> entities, T componentData);

Parameters

Parameter Description
entities The array of entities.
componentData The shared component value to set.

Description

Adds a shared component to multiple entities

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.


Declaration

public void AddSharedComponent(EntityQuery entityQuery, T componentData);

Parameters

Parameter Description
entityQuery The EntityQuery defining a set of entities to modify.
componentData The data to set.

Description

Adds an unmanaged shared component to a set of entities defined by a EntityQuery.

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.