Method SetComponent
SetComponent<T>(Entity, T)
Sets the value of a component of an entity.
Declaration
public static void SetComponent<T>(Entity entity, T component) where T : unmanaged, IComponentData
Parameters
| Type | Name | Description |
|---|---|---|
| Entity | entity | The entity. |
| T | component | The data to set. |
Type Parameters
| Name | Description |
|---|---|
| T | The component type. |
Remarks
Use this method to look up and set data in another entity using its Entity object. For example, if you have a component that contains an Entity field, you can update the component data for the referenced entity using this method.
When iterating over a set of entities via IJobEntity or Query<T1>(), do not use this method to update data of the current entity in the set. This function is much slower than accessing the data directly (by passing the component containing the data to your lambda iteration function as a parameter).
When you call this method gets replaced with component access methods through ComponentLookup<T>.
In both cases, this lookup method results in a slower, indirect memory access. When possible, organize your data to minimize the need for indirect lookups.
Exceptions
| Type | Condition |
|---|---|
| ArgumentException | Thrown if the component type has no fields. |
SetComponent<T>(SystemHandle, T)
Sets the value of a component of an entity associated with a system.
Declaration
public static void SetComponent<T>(SystemHandle systemHandle, T component) where T : unmanaged, IComponentData
Parameters
| Type | Name | Description |
|---|---|---|
| SystemHandle | systemHandle | The system handle. |
| T | component | The data to set. |
Type Parameters
| Name | Description |
|---|---|
| T | The component type. |
Remarks
Use this method to look up and set data in another system owned entity using its SystemHandle object.
When you call this method gets replaced with component access methods through ComponentLookup<T>.
Exceptions
| Type | Condition |
|---|---|
| ArgumentException | Thrown if the component type has no fields. |