Method AddComponentForLinkedEntityGroup
AddComponentForLinkedEntityGroup<T>(int, Entity, EntityQueryMask, T)
Records a command that adds a component to an entity's LinkedEntityGroup based on an EntityQueryMask. Entities in the LinkedEntityGroup that don't match the mask will be skipped safely.
Declaration
public void AddComponentForLinkedEntityGroup<T>(int sortKey, Entity e, EntityQueryMask mask, T component) where T : unmanaged, IComponentData
Parameters
Type | Name | Description |
---|---|---|
int | sortKey | A unique index for each set of commands added to this EntityCommandBuffer across all parallel jobs writing commands to this buffer. The ChunkIndexInQuery provided by IJobEntity is an appropriate value to use for this parameter. In an IJobChunk pass the 'unfilteredChunkIndex' value from Execute(in ArchetypeChunk, int, bool, in v128). |
Entity | e | The entity whose LinkedEntityGroup will be referenced. |
EntityQueryMask | mask | The EntityQueryMask that is used to determine which linked entities to add the component to. Note that EntityQueryMask ignores all query filtering (including chunk filtering and enableable components), and may thus match more entities than expected. |
T | component | The component value to set. |
Type Parameters
Name | Description |
---|---|
T | The type of component to add. |
Remarks
At playback, this command throws an error if the entity is destroyed before playback, if the entity is still deferred, or if any of the matching linked entities cannot add the component.
Exceptions
Type | Condition |
---|---|
ArgumentException | Throws if the component has a reference to a deferred entity, requiring fixup within the command buffer. |
NullReferenceException | Throws if an Allocator was not passed in when the EntityCommandBuffer was created. |
InvalidOperationException | Throws if this EntityCommandBuffer has already been played back. |
AddComponentForLinkedEntityGroup(int, Entity, EntityQueryMask, ComponentType)
Records a command that adds a component to an entity's LinkedEntityGroup based on an EntityQueryMask. Entities in the LinkedEntityGroup that don't match the mask will be skipped safely.
Declaration
public void AddComponentForLinkedEntityGroup(int sortKey, Entity e, EntityQueryMask mask, ComponentType componentType)
Parameters
Type | Name | Description |
---|---|---|
int | sortKey | A unique index for each set of commands added to this EntityCommandBuffer across all parallel jobs writing commands to this buffer. The ChunkIndexInQuery provided by IJobEntity is an appropriate value to use for this parameter. In an IJobChunk pass the 'unfilteredChunkIndex' value from Execute(in ArchetypeChunk, int, bool, in v128). |
Entity | e | The entity whose LinkedEntityGroup will be referenced. |
EntityQueryMask | mask | The EntityQueryMask that is used to determine which linked entities to add the component to. Note that EntityQueryMask ignores all query filtering (including chunk filtering and enableable components), and may thus match more entities than expected. |
ComponentType | componentType | The component type to add. |
Remarks
At playback, this command throws an error if the entity is destroyed before playback, if the entity is still deferred, or if any of the matching linked entities cannot add the component.
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. |