Method AddComponentData
AddComponentData<T>(EntityQuery, NativeArray<T>)
Adds a component to a set of entities defined by the EntityQuery and sets the component of each entity in the query to the value in the component array.
Declaration
[GenerateTestsForBurstCompatibility(GenericTypeArguments = new Type[] { typeof(BurstCompatibleComponentData) })]
public void AddComponentData<T>(EntityQuery entityQuery, NativeArray<T> componentArray) where T : unmanaged, IComponentData
Parameters
Type | Name | Description |
---|---|---|
EntityQuery | entityQuery | The EntityQuery defining the entities to add component to |
NativeArray<T> | componentArray | The NativeArray to add the components to. |
Type Parameters
Name | Description |
---|---|
T | The type of component to add. |
Remarks
You can use this method to add a component to an Entity.
Adding components changes an entity's archetype and results in the entity being moved to a different chunk. componentArray.Length must match entityQuery.ToEntityArray().Length.
AddComponentData<T>(Entity, T)
Adds a component to an entity and set the value of that component.
Declaration
[GenerateTestsForBurstCompatibility(GenericTypeArguments = new Type[] { typeof(BurstCompatibleComponentData) })]
public bool AddComponentData<T>(Entity entity, T componentData) where T : unmanaged, IComponentData
Parameters
Type | Name | Description |
---|---|---|
Entity | entity | The entity. |
T | componentData | The data to set. |
Returns
Type | Description |
---|---|
bool | Returns false if the entity alredy had the component. |
Type Parameters
Name | Description |
---|---|
T | The type of component. |
Remarks
Can add any kind of component except chunk components, managed components, or shared components.
Returns false if the entity already had the component. The component's data is set regardless.
Adding a component changes an entity's archetype and results in the entity being moved to a different chunk.
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. |
AddComponentData<T>(SystemHandle, T)
Adds a component to an entity associated with a system and sets the value of that component.
Declaration
[GenerateTestsForBurstCompatibility(GenericTypeArguments = new Type[] { typeof(BurstCompatibleComponentData) })]
public bool AddComponentData<T>(SystemHandle system, T componentData) where T : unmanaged, IComponentData
Parameters
Type | Name | Description |
---|---|---|
SystemHandle | system | The system handle. |
T | componentData | The data to set. |
Returns
Type | Description |
---|---|
bool | Returns false if the entity already had the component. |
Type Parameters
Name | Description |
---|---|
T | The type of component. |
Remarks
Can add any kind of component except chunk components, managed components, or shared components.
Returns false if the entity already had the component. The component's data is set regardless.
Adding a component changes an entity's archetype and results in the entity being moved to a different chunk.
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. |