Vixen
02b45cc4
csharp
public enum SystemPhase

The ordered stages of a frame. Within a phase, order is the dependency graph; between phases, a hard sync point.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

Named stages rather than one flat graph, because some ordering is not derivable from what systems touch. Input must be read before anything reacts to it and the camera must be final before culling starts, whether or not those systems share a component — and a user who has to express that as an UpdateAfterAttribute chain across a hundred systems will get it wrong.

The hard sync between phases is what makes a phase boundary a place where structural change can safely happen: command buffers are played back there, and the world's change version moves on, so a system asking "what changed since I last ran" gets an answer whose granularity is the phase.

Fields and properties (9)

  • EarlyUpdate

    Before anything else. Frame bookkeeping and time.

  • Input

    Devices are polled and input state is published.

  • FixedUpdate

    Simulation at a fixed timestep. Runs zero or more times per frame from an accumulator, so anything here must be a function of the fixed delta and never of the frame delta.

  • Update

    Ordinary per-frame game logic.

  • Animation

    Animation sampling and skinning, after logic has decided what is playing.

  • LateUpdate

    After everything has moved. Cameras that follow, constraints that correct.

  • PreRender

    Transforms are resolved, culling runs, draw lists are built.

  • Render

    The render graph is recorded and submitted.

  • PostRender

    After submission. Presentation bookkeeping, readbacks, statistics.

Used by (64, showing 40)

  • MouseCaptureSystemThirdPersonShooter
  • OrbitSystemEcsStressTest
  • AnimationSystemVixen.Animation
  • AudioSystemVixen.Audio
  • BehaviorLateUpdateSystemVixen.Engine
  • BehaviorLifecycleSystemVixen.Engine
  • BehaviorUpdateSystemVixen.Engine
  • CameraDirectorSystemVixen.Engine
  • CameraExtractionSystemVixen.Rendering
  • CharacterMovementSystemVixen.Physics
  • ConstraintGizmoSystemVixen.Animation
  • CoroutineEndOfFrameSystemVixen.Engine
  • CoroutineFixedStepSystemVixen.Engine
  • CoroutineLateUpdateSystemVixen.Engine
  • CoroutineUpdateSystemVixen.Engine
  • DebugDrawSystemVixen.Engine
  • DiagnosticOverlaySystemVixen.Engine
  • EngineLoopVixen.Engine
  • EngineLoopTestsVixen.Engine.Tests
  • InputPhaseSystemVixen.Ecs.Tests
  • InputUpdateSystemVixen.Engine
  • LightExtractionSystemVixen.Rendering
  • LocalPlayerSystemVixen.Net.Engine
  • MeshExtractionSystemVixen.Rendering
  • NavigationSystemVixen.Navigation
  • NetworkAnimatorApplySystemVixen.Net.Animation
  • NetworkAnimatorCaptureSystemVixen.Net.Animation
  • NetworkAudioApplySystemVixen.Net.Audio
  • NetworkAudioCaptureSystemVixen.Net.Audio
  • NetworkBonesApplySystemVixen.Net.Animation
  • NetworkBonesCaptureSystemVixen.Net.Animation
  • NetworkRigidBodyCaptureSystemVixen.Net.Physics
  • NetworkRigidBodyCorrectionSystemVixen.Net.Physics
  • NetworkSpawnSystemVixen.Net.Engine
  • NetworkTransformApplySystemVixen.Net.Engine
  • NetworkTransformCaptureSystemVixen.Net.Engine
  • PhysicsDebugDrawSystemVixen.Physics
  • PhysicsInterpolationSystemVixen.Physics
  • PhysicsStepSystemVixen.Physics
  • PhysicsSyncSystemVixen.Physics