Method AddComponent
AddComponent<T>(EntityCommandBuffer, Entity, T)
Records a command to add and set a managed component for an entity.
Declaration
public static void AddComponent<T>(this EntityCommandBuffer ecb, Entity e, T component) where T : class
Parameters
Type | Name | Description |
---|---|---|
EntityCommandBuffer | ecb | This entity command buffer. |
Entity | e | The entity to set the component value on. |
T | component | The component value to add. |
Type Parameters
Name | Description |
---|---|
T | The type of component to add. |
Remarks
At playback, if the entity already has this type of component, the value will just be set. Will throw an error if this entity is destroyed before playback, if this entity is still deferred, or adding this componentType makes the archetype too large.
Exceptions
Type | Condition |
---|---|
NullReferenceException | Throws if an Allocator was not passed in when the EntityCommandBuffer was created. |
InvalidOperationException | Throws if this EntityCommandBuffer has already been played back. |
AddComponent<T>(EntityCommandBuffer, Entity)
Records a command to add a managed component for an entity.
Declaration
public static void AddComponent<T>(this EntityCommandBuffer ecb, Entity e) where T : class
Parameters
Type | Name | Description |
---|---|---|
EntityCommandBuffer | ecb | This entity command buffer. |
Entity | e | The entity to set the component value on. |
Type Parameters
Name | Description |
---|---|
T | The type of component to add. |
Remarks
At playback, this command throws an error if this entity is destroyed before playback, if this entity is still deferred, or adding this componentType makes the archetype too large.
Exceptions
Type | Condition |
---|---|
NullReferenceException | Throws if an Allocator was not passed in when the EntityCommandBuffer was created. |
InvalidOperationException | Throws if this EntityCommandBuffer has already been played back. |
AddComponent<T>(EntityCommandBuffer, EntityQuery, T)
Records a command to add a managed component and set its value for all entities matching a query.
Declaration
public static void AddComponent<T>(this EntityCommandBuffer ecb, EntityQuery query, T component) where T : class, IComponentData, new()
Parameters
Type | Name | Description |
---|---|---|
EntityCommandBuffer | ecb | This entity command buffer. |
EntityQuery | query | The query specifying which entities to add the component value to. |
T | component | The component value to add. |
Type Parameters
Name | Description |
---|---|
T | The type of component to add. |
Remarks
The set of entities matching the query is 'captured' in the method call, and the recorded command stores an array of all these entities.
Entities which already have the component type will have the component set to the value.
Exceptions
Type | Condition |
---|---|
InvalidOperationException | Thrown in playback if one or more of the entities has been destroyed. (With safety checks disabled, playback will perform invalid and unsafe memory access.). |
NullReferenceException | Throws if an Allocator was not passed in when the EntityCommandBuffer was created. |
InvalidOperationException | Throws if this EntityCommandBuffer has already been played back. |