Method GetSingletonRW
GetSingletonRW<T>()
Gets a reference to the singleton component, for read/write access.
Declaration
public static RefRW<T> GetSingletonRW<T>() where T : unmanaged, IComponentData
Returns
| Type | Description |
|---|---|
| RefRW<T> | The component. |
Type Parameters
| Name | Description |
|---|---|
| T | The IComponentData subtype of the singleton component. This component type must not implement IEnableableComponent |
Remarks
NOTE: this reference refers directly to the singleton's component memory. Structural changes to the chunk where the singleton resides can invalidate this reference and result in crashes or undefined behaviour if the reference is used after structural changes.
This method differs from GetSingleton<T>() in the following ways:
The query that it generates requests read/write access to T, which registers the system as a
writer of that component, so systems that read that component and update later wait for this system's jobs.
GetSingleton<T>() generates a read-only query, which registers the system as a reader instead.
It throws an exception if a job that reads or writes T is still running, whereas
GetSingleton<T>() throws only if a job that writes T is still running. Neither
method completes the conflicting job for you, and both run this check only if safety checks are enabled. To complete
the job, call CompleteDependencyBeforeRW<T>() first, or restructure the data dependencies.
It increments the change version of T, even if you write the same value, so queries that filter
on changes to that component match the singleton entity. GetSingleton<T>() leaves the change version
unchanged.
Exceptions
| Type | Condition |
|---|---|
| InvalidOperationException | Thrown if |