# ComponentSystemGroup

> A special-case system that encapsulates an ordered list of other systems. When the group is updated, the group's member systems are updated in order.

## Definition

* **Type:** Class
* **Namespace:** [Unity.Entities](/engine/7000.0/script-reference/unity/entities.md)
* **Assembly:** UnityEngine.EntitiesModule
* **Inherits from:** [SystemBase](/engine/7000.0/script-reference/unity/entities/systembase.md)

```csharp
public abstract class ComponentSystemGroup : SystemBase
```

## Properties

| Property                                                                                                          | Description                                                                                                                                                         |
| ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Created](/engine/7000.0/script-reference/unity/entities/componentsystemgroup/created.md)                         | Checks if the system group is in a fully initialized and valid state                                                                                                |
| [EnableSystemSorting](/engine/7000.0/script-reference/unity/entities/componentsystemgroup/enablesystemsorting.md) | If true (the default), calling SortSystems() will sort the system update list, respecting the constraints imposed by \[UpdateBefore] and \[UpdateAfter] attributes. |
| [ManagedSystems](/engine/7000.0/script-reference/unity/entities/componentsystemgroup/managedsystems.md)           | The list of managed systems in this group, sorted by update order.                                                                                                  |
| [RateGroupAllocators](/engine/7000.0/script-reference/unity/entities/componentsystemgroup/rategroupallocators.md) | Retrieve double rewindable allocators of this rate system group.                                                                                                    |
| [RateManager](/engine/7000.0/script-reference/unity/entities/componentsystemgroup/ratemanager.md)                 | Optional field to control the update rate of this system group.                                                                                                     |

## Methods

| Method                                                                                                                                | Description                                                                                                                           |
| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| [AddSystemToUpdateList](/engine/7000.0/script-reference/unity/entities/componentsystemgroup/addsystemtoupdatelist.md)                 | Appends a managed system to the group's update list. The list will be sorted the next time the group is updated.                      |
| [GetAllSystems](/engine/7000.0/script-reference/unity/entities/componentsystemgroup/getallsystems.md)                                 | Get the list of all systems in this group, managed and unmanaged alike, sorted by update order.                                       |
| [GetUnmanagedSystems](/engine/7000.0/script-reference/unity/entities/componentsystemgroup/getunmanagedsystems.md)                     | Get the list of unmanaged systems in this group, sorted by update order.                                                              |
| [OnUpdate](/engine/7000.0/script-reference/unity/entities/componentsystemgroup/onupdate.md)                                           | Updates the group's systems                                                                                                           |
| [RemoveSystemFromUpdateList](/engine/7000.0/script-reference/unity/entities/componentsystemgroup/removesystemfromupdatelist.md)       | Requests that a managed system be removed from the group's update list. The system will be removed the next time the group is sorted. |
| [SetRateManagerCreateAllocator](/engine/7000.0/script-reference/unity/entities/componentsystemgroup/setratemanagercreateallocator.md) | Set optional rate manager for the system group and create group allocator.                                                            |
| [SortSystems](/engine/7000.0/script-reference/unity/entities/componentsystemgroup/sortsystems.md)                                     | Update the component system's sort order.                                                                                             |

## Inheritance

**Inherited Members:**

* [SystemBase.CompleteDependency()](/engine/7000.0/script-reference/unity/entities/systembase/completedependency.md)
* [SystemBase.Update()](/engine/7000.0/script-reference/unity/entities/systembase/update.md)
* [SystemBase.SetComponent\<T>(Entity, T)](/engine/7000.0/script-reference/unity/entities/systembase/setcomponent.md)
* [SystemBase.HasBuffer\<T>(Entity)](/engine/7000.0/script-reference/unity/entities/systembase/hasbuffer.md)
* [SystemBase.GetComponentLookup\<T>(bool)](/engine/7000.0/script-reference/unity/entities/systembase/getcomponentlookup.md)
* [SystemBase.GetBufferLookup\<T>(bool)](/engine/7000.0/script-reference/unity/entities/systembase/getbufferlookup.md)
* [SystemBase.GetEntityStorageInfoLookup()](/engine/7000.0/script-reference/unity/entities/systembase/getentitystorageinfolookup.md)
* [SystemBase.Dependency()](/engine/7000.0/script-reference/unity/entities/systembase/dependency.md)
* [SystemBase.CheckedStateRef()](/engine/7000.0/script-reference/unity/entities/systembase/checkedstateref.md)
* [ComponentSystemBase.OnCreate()](/engine/7000.0/script-reference/unity/entities/componentsystembase/oncreate.md)
* [ComponentSystemBase.OnStartRunning()](/engine/7000.0/script-reference/unity/entities/componentsystembase/onstartrunning.md)
* [ComponentSystemBase.OnStopRunning()](/engine/7000.0/script-reference/unity/entities/componentsystembase/onstoprunning.md)
* [ComponentSystemBase.OnDestroy()](/engine/7000.0/script-reference/unity/entities/componentsystembase/ondestroy.md)
* [ComponentSystemBase.ShouldRunSystem()](/engine/7000.0/script-reference/unity/entities/componentsystembase/shouldrunsystem.md)
* [ComponentSystemBase.GetComponentTypeHandle\<T>(bool)](/engine/7000.0/script-reference/unity/entities/componentsystembase/getcomponenttypehandle.md)
* [ComponentSystemBase.GetDynamicComponentTypeHandle(ComponentType)](/engine/7000.0/script-reference/unity/entities/componentsystembase/getdynamiccomponenttypehandle.md)
* [ComponentSystemBase.GetBufferTypeHandle\<T>(bool)](/engine/7000.0/script-reference/unity/entities/componentsystembase/getbuffertypehandle.md)
* [ComponentSystemBase.GetSharedComponentTypeHandle\<T>()](/engine/7000.0/script-reference/unity/entities/componentsystembase/getsharedcomponenttypehandle.md)
* [ComponentSystemBase.GetDynamicSharedComponentTypeHandle(ComponentType)](/engine/7000.0/script-reference/unity/entities/componentsystembase/getdynamicsharedcomponenttypehandle.md)
* [ComponentSystemBase.GetEntityTypeHandle()](/engine/7000.0/script-reference/unity/entities/componentsystembase/getentitytypehandle.md)
* [ComponentSystemBase.RequireForUpdate(EntityQuery)](/engine/7000.0/script-reference/unity/entities/componentsystembase/requireforupdate.md)
* [ComponentSystemBase.RequireAnyForUpdate(EntityQuery\[\])](/engine/7000.0/script-reference/unity/entities/componentsystembase/requireanyforupdate.md#requireanyforupdate\(entityquery\))
* [ComponentSystemBase.RequireAnyForUpdate(NativeArray\<EntityQuery>)](/engine/7000.0/script-reference/unity/entities/componentsystembase/requireanyforupdate.md#requireanyforupdate\(nativearrayentityquery\))
* [ComponentSystemBase.RequireForUpdate\<T>()](/engine/7000.0/script-reference/unity/entities/componentsystembase/requireforupdate.md)
* [ComponentSystemBase.TryGetSingleton\<T>(T)](/engine/7000.0/script-reference/unity/entities/componentsystembase/trygetsingleton.md)
* [ComponentSystemBase.TryGetSingletonBuffer\<T>(DynamicBuffer\<T>)](/engine/7000.0/script-reference/unity/entities/componentsystembase/trygetsingletonbuffer.md)
* [ComponentSystemBase.SetSingleton\<T>(T)](/engine/7000.0/script-reference/unity/entities/componentsystembase/setsingleton.md)
* [ComponentSystemBase.GetEntityQuery(ComponentType\[\])](/engine/7000.0/script-reference/unity/entities/componentsystembase/getentityquery.md#getentityquery\(componenttype\))
* [ComponentSystemBase.GetEntityQuery(NativeArray\<ComponentType>)](/engine/7000.0/script-reference/unity/entities/componentsystembase/getentityquery.md#getentityquery\(nativearraycomponenttype\))
* [ComponentSystemBase.GetEntityQuery(EntityQueryDesc\[\])](/engine/7000.0/script-reference/unity/entities/componentsystembase/getentityquery.md#getentityquery\(entityquerydesc\))
* [ComponentSystemBase.GetEntityQuery(EntityQueryBuilder)](/engine/7000.0/script-reference/unity/entities/componentsystembase/getentityquery.md#getentityquery\(entityquerybuilder\))
* [ComponentSystemBase.Enabled()](/engine/7000.0/script-reference/unity/entities/componentsystembase/enabled.md)
* [ComponentSystemBase.EntityQueries()](/engine/7000.0/script-reference/unity/entities/componentsystembase/entityqueries.md)
* [ComponentSystemBase.GlobalSystemVersion()](/engine/7000.0/script-reference/unity/entities/componentsystembase/globalsystemversion.md)
* [ComponentSystemBase.LastSystemVersion()](/engine/7000.0/script-reference/unity/entities/componentsystembase/lastsystemversion.md)
* [ComponentSystemBase.EntityManager()](/engine/7000.0/script-reference/unity/entities/componentsystembase/entitymanager.md)
* [ComponentSystemBase.World()](/engine/7000.0/script-reference/unity/entities/componentsystembase/world.md)
* [ComponentSystemBase.SystemHandle()](/engine/7000.0/script-reference/unity/entities/componentsystembase/systemhandle.md)
* [ComponentSystemBase.WorldUpdateAllocator()](/engine/7000.0/script-reference/unity/entities/componentsystembase/worldupdateallocator.md)
