PhysicsInterpolationSystem
Defined in: physics/src/PhysicsInterpolationSystem.ts:40
Computes each scene’s interpolation alpha, then blends previous and current physics poses into Transform for smooth rendering.
Runs in Update at priority -100 — ahead of particles (0), processes (500) and component updates (1000) — so game logic reads the same pose that is drawn this frame. Dynamic and kinematic bodies are interpolated; static bodies are skipped.
For kinematic bodies the Transform is also the input channel: before the lerp overwrites it, any pose the game wrote there is captured as the body’s next step target. The capture compares against the pose physics last wrote, so on frames where nothing else touched the Transform the lerp’s own (trailing) output is not fed back as a target.
Alpha combines the scene’s own sub-accumulator, holding scene time no step has simulated yet, with the game loop’s leftover frame time converted to scene time. It is clamped to 1: after a stall the loop caps its fixed steps per frame, so its accumulator can hold more than one timestep.
Iterates all scenes with physics contexts, including paused ones, so that a mid-frame pause doesn’t cause a visual pop. A paused scene — and a scene whose effective time scale is 0, such as during a freeze — skips the alpha recompute and keeps its frozen value, so the lerp writes the same pose each frame until the scene resumes.
Extends
Section titled “Extends”System
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new PhysicsInterpolationSystem():
PhysicsInterpolationSystem
Returns
Section titled “Returns”PhysicsInterpolationSystem
Inherited from
Section titled “Inherited from”System.constructor
Properties
Section titled “Properties”context
Section titled “context”
protectedcontext:EngineContext
Defined in: core/dist/index.d.ts:1086
Reference to the engine context, set on registration.
Inherited from
Section titled “Inherited from”System.context
enabled
Section titled “enabled”enabled:
boolean
Defined in: core/dist/index.d.ts:1084
Whether this system is active.
Inherited from
Section titled “Inherited from”System.enabled
readonlyphase:Update=Phase.Update
Defined in: physics/src/PhysicsInterpolationSystem.ts:41
The phase this system runs in.
Overrides
Section titled “Overrides”System.phase
priority
Section titled “priority”
readonlypriority:-100=-100
Defined in: physics/src/PhysicsInterpolationSystem.ts:42
Execution priority within the phase. Lower = earlier. Default: 0.
Overrides
Section titled “Overrides”System.priority
Methods
Section titled “Methods”_setContext()
Section titled “_setContext()”_setContext(
context):void
Defined in: core/dist/index.d.ts:1093
Internal
Set the engine context. Called by SystemScheduler when the system is registered.
Parameters
Section titled “Parameters”context
Section titled “context”EngineContext
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”System._setContext
onRegister()?
Section titled “onRegister()?”
optionalonRegister(context):void
Defined in: core/dist/index.d.ts:1097
Called once when the system is registered with the engine.
Parameters
Section titled “Parameters”context
Section titled “context”EngineContext
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”System.onRegister
onUnregister()?
Section titled “onUnregister()?”
optionalonUnregister():void
Defined in: core/dist/index.d.ts:1101
Called when the system is removed.
Returns
Section titled “Returns”void
Inherited from
Section titled “Inherited from”System.onUnregister
update()
Section titled “update()”update(
_dt):void
Defined in: physics/src/PhysicsInterpolationSystem.ts:48
Called every frame (or every fixed step for FixedUpdate).
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”void
Overrides
Section titled “Overrides”System.update
protecteduse<T>(key):T
Defined in: core/dist/index.d.ts:1095
Resolve a service by key, cached after first lookup.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”ServiceKey<T>
Returns
Section titled “Returns”T
Inherited from
Section titled “Inherited from”System.use