# AddSharedComponent

> Records a command to add an unmanaged shared component value on an entity.

## Definition

* **Type:** Method
* **Namespace:** [Unity.Entities](/engine/7000.0/script-reference/unity/entities.md)
* **Assembly:** UnityEngine.EntitiesModule

## AddSharedComponent\<T>(int, Entity, T)

Records a command to add an unmanaged shared component value on an entity.

```csharp
public void AddSharedComponent<T>(int sortKey, Entity e, T sharedComponent) where T : unmanaged, ISharedComponentData
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): A unique index for each set of commands added to this EntityCommandBuffer across all parallel jobs writing commands to this buffer. The [ChunkIndexInQuery](/engine/7000.0/script-reference/unity/entities/chunkindexinquery.md) provided by [IJobEntity](/engine/7000.0/script-reference/unity/entities/ijobentity.md) is an appropriate value to use for this parameter. In an [IJobChunk](/engine/7000.0/script-reference/unity/entities/ijobchunk.md) pass the 'unfilteredChunkIndex' value from IJobChunk.Execute.**** (\[Entity]\(/engine/7000.0/script-reference/unity/entities/entity)): The entity to add the shared component value to.**** (T): The shared component value to add.

### Remarks

At playback, this command throws an error if this entity is destroyed before playback, if adding this shared component exceeds the maximum number of shared components, or adding a component type makes the archetype too large.

## AddSharedComponent\<T>(int, NativeArray\<Entity>, T)

Records a command to add an unmanaged shared component value on a NativeArray of entities.

```csharp
public void AddSharedComponent<T>(int sortKey, NativeArray<Entity> entities, T sharedComponent) where T : unmanaged, ISharedComponentData
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): A unique index for each set of commands added to this EntityCommandBuffer across all parallel jobs writing commands to this buffer. The [ChunkIndexInQuery](/engine/7000.0/script-reference/unity/entities/chunkindexinquery.md) provided by [IJobEntity](/engine/7000.0/script-reference/unity/entities/ijobentity.md) is an appropriate value to use for this parameter. In an [IJobChunk](/engine/7000.0/script-reference/unity/entities/ijobchunk.md) pass the 'unfilteredChunkIndex' value from IJobChunk.Execute.**** (\[NativeArray\<Entity>]\(/engine/7000.0/script-reference/unity/collections/nativearray1)): The NativeArray of entities to add the shared component value to.**** (T): The shared component value to add.

### Remarks

At playback, this command throws an error if any entity is destroyed before playback, if adding this shared component exceeds the maximum number of shared components, or adding a component type makes the archetype too large.
