Method AddComponentObject
AddComponentObject(Entity, object)
Adds a managed UnityEngine.Component object to an entity.
Declaration
[ExcludeFromBurstCompatTesting("Takes managed object")]
public void AddComponentObject(Entity entity, object componentData)
Parameters
Type | Name | Description |
---|---|---|
Entity | entity | The entity to modify. |
object | componentData | An object inheriting UnityEngine.Component. |
Remarks
Accessing data in a managed object forfeits many opportunities for increased performance. Adding managed objects to an entity should be avoided or used sparingly.
Adding a component changes an entity's archetype and results in the entity being moved to a different chunk.
The method also works for adding managed objects implementing IComponentData
, but AddComponentData
is the preferred method for those objects.
Important: This method creates a sync point, which means that the EntityManager waits for all currently running jobs to complete before adding the object. 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 |
---|---|
ArgumentNullException | If the componentData object is not an instance of UnityEngine.Component. |
AddComponentObject(SystemHandle, object)
Adds a managed UnityEngine.Component object to an entity associated with a system.
Declaration
[ExcludeFromBurstCompatTesting("Takes managed object")]
public void AddComponentObject(SystemHandle system, object componentData)
Parameters
Type | Name | Description |
---|---|---|
SystemHandle | system | The system handle with the system entity to modify. |
object | componentData | An object inheriting UnityEngine.Component. |
Remarks
Accessing data in a managed object forfeits many opportunities for increased performance. Adding managed objects to an entity should be avoided or used sparingly.
Adding a component changes an entity's archetype and results in the entity being moved to a different chunk.
The method also works for adding managed objects implementing IComponentData
, but AddComponentData
is the preferred method for those objects.
Important: This method creates a sync point, which means that the EntityManager waits for all currently running jobs to complete before adding the object. 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 |
---|---|
ArgumentNullException | If the componentData object is not an instance of UnityEngine.Component. |