docs.unity3d.com
    Show / Hide Table of Contents

    Class CustomPhysicsSystemGroup

    This abstract class can be used to create a system group for a custom physics world. To create a custom physics group, derive from this class and implement empty constructor which calls one of two constructors of this class, and potentially implement some of the other virtual functions.

    Inheritance
    Object
    ComponentSystemBase
    SystemBase
    ComponentSystemGroup
    CustomPhysicsSystemGroupBase
    CustomPhysicsSystemGroup
    Inherited Members
    CustomPhysicsSystemGroupBase.m_WorldData
    CustomPhysicsSystemGroupBase.m_WorldFilter
    CustomPhysicsSystemGroupBase.AddExistingSystemsToUpdate(List<Type>)
    CustomPhysicsSystemGroupBase.AddExistingUnmanagedSystemsToUpdate(List<Type>)
    ComponentSystemGroup.GetUnmanagedSystems(Allocator)
    ComponentSystemGroup.GetAllSystems(Allocator)
    ComponentSystemGroup.AddSystemToUpdateList(ComponentSystemBase)
    ComponentSystemGroup.AddSystemToUpdateList(SystemHandle)
    ComponentSystemGroup.RemoveSystemFromUpdateList(ComponentSystemBase)
    ComponentSystemGroup.RemoveSystemFromUpdateList(SystemHandle)
    ComponentSystemGroup.SortSystems()
    ComponentSystemGroup.SetRateManagerCreateAllocator(IRateManager)
    ComponentSystemGroup.EnableSystemSorting
    ComponentSystemGroup.Created
    ComponentSystemGroup.ManagedSystems
    ComponentSystemGroup.FixedRateManager
    ComponentSystemGroup.RateManager
    ComponentSystemGroup.RateGroupAllocators
    SystemBase.CompleteDependency()
    SystemBase.Update()
    SystemBase.GetComponent<T>(Entity)
    SystemBase.SetComponent<T>(Entity, T)
    SystemBase.HasComponent<T>(Entity)
    SystemBase.HasBuffer<T>(Entity)
    SystemBase.GetComponentLookup<T>(Boolean)
    SystemBase.GetComponentDataFromEntity<T>(Boolean)
    SystemBase.GetBuffer<T>(Entity, Boolean)
    SystemBase.GetBufferLookup<T>(Boolean)
    SystemBase.GetBufferFromEntity<T>(Boolean)
    SystemBase.GetEntityStorageInfoLookup()
    SystemBase.GetStorageInfoFromEntity()
    SystemBase.Exists(Entity)
    SystemBase.Dependency
    SystemBase.CheckedStateRef
    SystemBase.Entities
    SystemBase.Job
    ComponentSystemBase.ShouldRunSystem()
    ComponentSystemBase.GetComponentTypeHandle<T>(Boolean)
    ComponentSystemBase.GetDynamicComponentTypeHandle(ComponentType)
    ComponentSystemBase.GetBufferTypeHandle<T>(Boolean)
    ComponentSystemBase.GetSharedComponentTypeHandle<T>()
    ComponentSystemBase.GetDynamicSharedComponentTypeHandle(ComponentType)
    ComponentSystemBase.GetEntityTypeHandle()
    ComponentSystemBase.RequireForUpdate(EntityQuery)
    ComponentSystemBase.RequireAnyForUpdate(EntityQuery[])
    ComponentSystemBase.RequireAnyForUpdate(NativeArray<EntityQuery>)
    ComponentSystemBase.RequireForUpdate<T>()
    ComponentSystemBase.RequireSingletonForUpdate<T>()
    ComponentSystemBase.HasSingleton<T>()
    ComponentSystemBase.GetSingleton<T>()
    ComponentSystemBase.GetSingletonRW<T>()
    ComponentSystemBase.GetSingletonBuffer<T>(Boolean)
    ComponentSystemBase.TryGetSingleton<T>(T)
    ComponentSystemBase.TryGetSingletonBuffer<T>(DynamicBuffer<T>)
    ComponentSystemBase.SetSingleton<T>(T)
    ComponentSystemBase.GetSingletonEntity<T>()
    ComponentSystemBase.TryGetSingletonEntity<T>(Entity)
    ComponentSystemBase.GetEntityQuery(ComponentType[])
    ComponentSystemBase.GetEntityQuery(NativeArray<ComponentType>)
    ComponentSystemBase.GetEntityQuery(EntityQueryDesc[])
    ComponentSystemBase.GetEntityQuery(EntityQueryBuilder)
    ComponentSystemBase.Enabled
    ComponentSystemBase.EntityQueries
    ComponentSystemBase.GlobalSystemVersion
    ComponentSystemBase.LastSystemVersion
    ComponentSystemBase.EntityManager
    ComponentSystemBase.World
    ComponentSystemBase.SystemHandle
    ComponentSystemBase.SystemHandleUntyped
    ComponentSystemBase.Time
    ComponentSystemBase.WorldUpdateAllocator
    Object.ToString()
    Object.Equals(Object)
    Object.Equals(Object, Object)
    Object.ReferenceEquals(Object, Object)
    Object.GetHashCode()
    Object.GetType()
    Object.MemberwiseClone()
    Namespace: Unity.Physics.Systems
    Syntax
    public abstract class CustomPhysicsSystemGroup : CustomPhysicsSystemGroupBase
    Remarks

    If class that derives CustomPhysicsSystemGroup doesn't need the Simulation to be recreated on each OnStartRunning then it should override OnStartRunning and guard instantiation of new Simulation so it happens only once. It also has to override OnStopRunning and move disposing of simulation to it's own Dispose method.

    Constructors

    CustomPhysicsSystemGroup(UInt32, Boolean)

    Constructor. Your subclass needs to implement an empty constructor which is calling this one to properly set up the world index.

    Declaration
    protected CustomPhysicsSystemGroup(uint worldIndex, bool shareStaticColliders)
    Parameters
    Type Name Description
    UInt32 worldIndex

    A world index for a physics world.

    Boolean shareStaticColliders

    Should static colliders be shared between main world and this one.

    Methods

    PostGroupUpdateCallback()

    Called after the systems in this group are updated. It is useful in cases of needing to restore system state (such as NativeArrays, NativeLists etc), after it is ran in a custom group. If overriding this method, make sure to call base.PostGroupUpdateCallback().

    Declaration
    protected override void PostGroupUpdateCallback()
    Overrides
    CustomPhysicsSystemGroupBase.PostGroupUpdateCallback()

    PreGroupUpdateCallback()

    Called before the systems in this group are updated. It is useful in cases of needing to store system state (such as NativeArrays, NativeLists etc), before it is ran in a custom group. If overriding this method, make sure to call base.PreGroupUpdateCallback().

    Declaration
    protected override void PreGroupUpdateCallback()
    Overrides
    CustomPhysicsSystemGroupBase.PreGroupUpdateCallback()
    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023