Every interactive simulation runs at a variable frame rate, which means the amount of time that passes between two consecutiveDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/ProwlEngine/Prowl/llms.txt
Use this file to discover all available pages before exploring further.
Update() calls is never the same twice. Prowl’s Time class gives you the tools to account for this variation: per-frame deltas so your movement stays consistent at any frame rate, a fixed timestep for deterministic physics, a frame counter, and a timeScale multiplier that lets you implement slow motion or pausing with a single line of code. All of these properties read from a stack of TimeData objects, so sub-systems like cutscenes can push their own time context without affecting the rest of the game.
Core Properties
deltaTime and deltaTimeF
Time.deltaTime (double) and Time.deltaTimeF (float) return the number of seconds elapsed since the previous frame, scaled by Time.timeScale. This is the value you multiply against any per-frame movement or rate to make it frame-rate independent.
unscaledDeltaTime
Time.unscaledDeltaTime is the raw wall-clock frame duration, unaffected by timeScale. Use it for UI animations, audio pitch, or any system that should continue running at normal speed even when the game is paused.
time and unscaledTotalTime
Time.time is the total accumulated scaled elapsed time since the application started. Time.unscaledTotalTime is the same but unaffected by scale changes.
fixedDeltaTime
Time.fixedDeltaTime returns 1.0 / PhysicsSettings.TargetFrameRate (defaults to 1.0 / 50 = 0.02 s). Use this value inside FixedUpdate() for any calculation that must match the physics step rate exactly.
frameCount
Time.frameCount is a monotonically increasing counter (type long) incremented once per rendered frame. Use it to spread heavy work across frames with a modulo check.
Time Scale
Time.timeScale is a multiplier applied to deltaTime and time. The default is 1.0. Setting it to 0 effectively pauses all scaled time; setting it to 0.25 creates quarter-speed slow motion. A float convenience alias, Time.timeScaleF, is also available when a float is required.
WaitForSeconds inside a coroutine uses scaled Time.time, so it also slows down with timeScale. To time something in real-world seconds while time is scaled, accumulate Time.unscaledDeltaTime manually as shown above.Pausing the Game
Smooth Delta Time
Time.smoothDeltaTime is derived from an exponentially weighted moving average of the raw unscaled frame delta (smoothUnscaledDeltaTime), multiplied by the current raw frame time. It dampens sudden spikes caused by garbage collection or asset loading, making it useful for display values that should feel stable even under jitter.
Time.smoothUnscaledDeltaTime provides the underlying EMA of the raw frame duration, unaffected by timeScale, and is useful for smoothed unscaled timing (e.g. real-time analytics).
Both values are tunable via Time.timeSmoothFactor (default 0.25).
Time.timeSmoothFactor. A value closer to 1.0 responds faster; closer to 0.0 smooths more aggressively.
The TimeData Stack
EveryTime property reads from Time.CurrentTime, which is the top of Time.TimeStack. Sub-systems (e.g., a replay recorder, a cutscene player) can push a custom TimeData instance to run with isolated time without affecting global time.
Property Summary
Time.deltaTime / deltaTimeF
Scaled frame delta as
double / float. Multiply against per-frame rates.Time.unscaledDeltaTime
Raw frame delta, unaffected by
timeScale. Use for UI, audio, and pause-safe logic.Time.time
Total scaled elapsed time since start. Ideal for sinusoidal oscillators and offsets.
Time.unscaledTotalTime
Total real-world elapsed time. Unaffected by scale; useful for session telemetry.
Time.fixedDeltaTime
1.0 / PhysicsSettings.TargetFrameRate. The timestep used in FixedUpdate().Time.frameCount
Frames rendered since launch (
long). Use for frame-staggered work.Time.timeScale / timeScaleF
Global time multiplier (
double / float). 0 = paused, 0.5 = half speed, 1 = normal.Time.smoothDeltaTime / smoothUnscaledDeltaTime
Smoothed frame deltas derived from an EMA of the raw frame duration. Use for stable display values and spring dampers.