# SetComponent<T>(int, Entity, T)

> Records a command to set a component value on an entity.

## Definition

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

```csharp
public void SetComponent<T>(int sortKey, Entity e, T component) where T : unmanaged, IComponentData
```

### 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 set the component value of.**** (T): The component value to set.

### Remarks

At playback, this command throws an error if this entity is destroyed before playback, if the entity doesn't have the component type, if the entity has the [Prefab](/engine/7000.0/script-reference/unity/entities/prefab.md) tag, or if T is zero sized.
