# SystemState

> Contains raw entity system state. Used by unmanaged systems (ISystem) as well as managed systems behind the scenes.

## Definition

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

```csharp
public ref struct SystemState
```

## Properties

| Property                                                                                                   | Description                                                                                                                                           |
| ---------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| [DebugName](/engine/7000.0/script-reference/unity/entities/systemstate/debugname.md)                       | Return a debug name for unmanaged systems.                                                                                                            |
| [Dependency](/engine/7000.0/script-reference/unity/entities/systemstate/dependency.md)                     | The ECS-related data dependencies of the system.                                                                                                      |
| [Enabled](/engine/7000.0/script-reference/unity/entities/systemstate/enabled.md)                           | Controls whether this system executes when its OnUpdate function is called.                                                                           |
| [EntityManager](/engine/7000.0/script-reference/unity/entities/systemstate/entitymanager.md)               | The EntityManager object of the [SystemState.World](/engine/7000.0/script-reference/unity/entities/systemstate/world.md) in which this system exists. |
| [GlobalSystemVersion](/engine/7000.0/script-reference/unity/entities/systemstate/globalsystemversion.md)   | The current change version number in this [SystemState.World](/engine/7000.0/script-reference/unity/entities/systemstate/world.md).                   |
| [LastSystemVersion](/engine/7000.0/script-reference/unity/entities/systemstate/lastsystemversion.md)       | The current version of this system.                                                                                                                   |
| [SystemHandle](/engine/7000.0/script-reference/unity/entities/systemstate/systemhandle.md)                 | The untyped system's handle.                                                                                                                          |
| [UnmanagedMetaIndex](/engine/7000.0/script-reference/unity/entities/systemstate/unmanagedmetaindex.md)     | Return the unmanaged type index of the system (>= 0 for ISystem-type systems), or -1 for managed systems.                                             |
| [World](/engine/7000.0/script-reference/unity/entities/systemstate/world.md)                               | The World in which this system exists.                                                                                                                |
| [WorldUnmanaged](/engine/7000.0/script-reference/unity/entities/systemstate/worldunmanaged.md)             | The unmanaged portion of the world in which this system exists.                                                                                       |
| [WorldUpdateAllocator](/engine/7000.0/script-reference/unity/entities/systemstate/worldupdateallocator.md) | Retrieve the world update allocator of the World in which this system exists.                                                                         |

## Methods

| Method                                                                                                                                   | Description                                                                                                                                                                                                   |
| ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [CompleteDependency](/engine/7000.0/script-reference/unity/entities/systemstate/completedependency.md)                                   | Completes combined job handles registered with this system. See [SystemState.Dependency](/engine/7000.0/script-reference/unity/entities/systemstate/dependency.md) for more information.                      |
| [GetBufferLookup](/engine/7000.0/script-reference/unity/entities/systemstate/getbufferlookup.md)                                         | Manually gets a BufferLookup\\\<T\\> object that can access a [DynamicBuffer\<T>](/engine/7000.0/script-reference/unity/entities/dynamicbuffer1.md).                                                          |
| [GetBufferTypeHandle](/engine/7000.0/script-reference/unity/entities/systemstate/getbuffertypehandle.md)                                 | Manually gets the run-time type information required to access an array of buffer components in a chunk.                                                                                                      |
| [GetComponentLookup](/engine/7000.0/script-reference/unity/entities/systemstate/getcomponentlookup.md)                                   | Manually gets a dictionary-like container containing all components of type T, keyed by Entity.                                                                                                               |
| [GetComponentTypeHandle](/engine/7000.0/script-reference/unity/entities/systemstate/getcomponenttypehandle.md)                           | Manually gets the run-time type information required to access an array of component data in a chunk.                                                                                                         |
| [GetDynamicComponentTypeHandle](/engine/7000.0/script-reference/unity/entities/systemstate/getdynamiccomponenttypehandle.md)             | Manually gets the run-time type information required to access an array of component data in a chunk.                                                                                                         |
| [GetDynamicSharedComponentTypeHandle](/engine/7000.0/script-reference/unity/entities/systemstate/getdynamicsharedcomponenttypehandle.md) | Manually gets the run-time type information required to access a shared component data in a chunk.                                                                                                            |
| [GetEntityQuery](/engine/7000.0/script-reference/unity/entities/systemstate/getentityquery.md)                                           | Gets the cached query for the specified component types, if one exists; otherwise, creates a new query instance and caches it.                                                                                |
| [GetEntityStorageInfoLookup](/engine/7000.0/script-reference/unity/entities/systemstate/getentitystorageinfolookup.md)                   | Manually gets a dictionary-like container containing information about how entities are stored.                                                                                                               |
| [GetEntityTypeHandle](/engine/7000.0/script-reference/unity/entities/systemstate/getentitytypehandle.md)                                 | Manually gets the runtime type information required to access the array of [Entity](/engine/7000.0/script-reference/unity/entities/entity.md) objects in a chunk.                                             |
| [GetSharedComponentTypeHandle](/engine/7000.0/script-reference/unity/entities/systemstate/getsharedcomponenttypehandle.md)               | Manually gets the run-time type information required to access a shared component data in a chunk.                                                                                                            |
| [GetTransformLookup](/engine/7000.0/script-reference/unity/entities/systemstate/gettransformlookup.md)                                   | Manually gets a [TransformLookup](/engine/7000.0/script-reference/unity/entities/transformlookup.md) object that can access a [TransformRef](/engine/7000.0/script-reference/unity/entities/transformref.md). |
| [GetTransformRef](/engine/7000.0/script-reference/unity/entities/systemstate/gettransformref.md)                                         | Gets the TransformRef of an entity.                                                                                                                                                                           |
| [GetTransformTypeHandle](/engine/7000.0/script-reference/unity/entities/systemstate/gettransformtypehandle.md)                           | Manually gets the run-time type information required to access transforms in a chunk.                                                                                                                         |
| [RequireAnyForUpdate](/engine/7000.0/script-reference/unity/entities/systemstate/requireanyforupdate.md)                                 | Provide a set of queries, one of which must match entities for the system to run.                                                                                                                             |
| [RequireForUpdate](/engine/7000.0/script-reference/unity/entities/systemstate/requireforupdate.md)                                       | Adds a query that must return entities for the system to run. You can add multiple required queries to a system; all of them must match at least one entity for the system to run.                            |
| [ShouldRunSystem](/engine/7000.0/script-reference/unity/entities/systemstate/shouldrunsystem.md)                                         | Reports whether this system satisfies the criteria to update. This function is used internally to determine whether the system's OnUpdate function can be skipped.                                            |
