docs.unity3d.com
Search Results for

    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.EnableSystemSorting
    ComponentSystemGroup.Created
    ComponentSystemGroup.ManagedSystems
    ComponentSystemGroup.GetUnmanagedSystems(Allocator)
    ComponentSystemGroup.GetAllSystems(Allocator)
    ComponentSystemGroup.AddSystemToUpdateList(ComponentSystemBase)
    ComponentSystemGroup.AddSystemToUpdateList(SystemHandle)
    ComponentSystemGroup.RemoveSystemFromUpdateList(ComponentSystemBase)
    ComponentSystemGroup.RemoveSystemFromUpdateList(SystemHandle)
    ComponentSystemGroup.SortSystems()
    ComponentSystemGroup.FixedRateManager
    ComponentSystemGroup.RateManager
    ComponentSystemGroup.SetRateManagerCreateAllocator(IRateManager)
    ComponentSystemGroup.RateGroupAllocators
    SystemBase.Dependency
    SystemBase.CheckedStateRef
    SystemBase.CompleteDependency()
    SystemBase.Entities
    SystemBase.Job
    SystemBase.Update()
    SystemBase.GetComponent<T>(Entity)
    SystemBase.SetComponent<T>(Entity, T)
    SystemBase.HasComponent<T>(Entity)
    SystemBase.HasBuffer<T>(Entity)
    SystemBase.GetComponentLookup<T>(bool)
    SystemBase.GetComponentDataFromEntity<T>(bool)
    SystemBase.GetBuffer<T>(Entity, bool)
    SystemBase.GetBufferLookup<T>(bool)
    SystemBase.GetBufferFromEntity<T>(bool)
    SystemBase.GetEntityStorageInfoLookup()
    SystemBase.GetStorageInfoFromEntity()
    SystemBase.Exists(Entity)
    ComponentSystemBase.Enabled
    ComponentSystemBase.EntityQueries
    ComponentSystemBase.GlobalSystemVersion
    ComponentSystemBase.LastSystemVersion
    ComponentSystemBase.EntityManager
    ComponentSystemBase.World
    ComponentSystemBase.SystemHandle
    ComponentSystemBase.SystemHandleUntyped
    ComponentSystemBase.Time
    ComponentSystemBase.WorldUpdateAllocator
    ComponentSystemBase.ShouldRunSystem()
    ComponentSystemBase.GetComponentTypeHandle<T>(bool)
    ComponentSystemBase.GetDynamicComponentTypeHandle(ComponentType)
    ComponentSystemBase.GetBufferTypeHandle<T>(bool)
    ComponentSystemBase.GetSharedComponentTypeHandle<T>()
    ComponentSystemBase.GetDynamicSharedComponentTypeHandle(ComponentType)
    ComponentSystemBase.GetEntityTypeHandle()
    ComponentSystemBase.RequireForUpdate(EntityQuery)
    ComponentSystemBase.RequireAnyForUpdate(params EntityQuery[])
    ComponentSystemBase.RequireAnyForUpdate(NativeArray<EntityQuery>)
    ComponentSystemBase.RequireForUpdate<T>()
    ComponentSystemBase.RequireSingletonForUpdate<T>()
    ComponentSystemBase.HasSingleton<T>()
    ComponentSystemBase.GetSingleton<T>()
    ComponentSystemBase.GetSingletonRW<T>()
    ComponentSystemBase.GetSingletonBuffer<T>(bool)
    ComponentSystemBase.TryGetSingleton<T>(out T)
    ComponentSystemBase.TryGetSingletonBuffer<T>(out DynamicBuffer<T>)
    ComponentSystemBase.SetSingleton<T>(T)
    ComponentSystemBase.GetSingletonEntity<T>()
    ComponentSystemBase.TryGetSingletonEntity<T>(out Entity)
    ComponentSystemBase.GetEntityQuery(params ComponentType[])
    ComponentSystemBase.GetEntityQuery(NativeArray<ComponentType>)
    ComponentSystemBase.GetEntityQuery(params EntityQueryDesc[])
    ComponentSystemBase.GetEntityQuery(in EntityQueryBuilder)
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: Unity.Physics.Systems
    Assembly: Unity.Physics.dll
    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(uint, bool)

    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
    uint worldIndex

    A world index for a physics world.

    bool 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()
    In This Article
    Back to top
    Copyright © 2024 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)