Custom deterministic update manager for Unity that replaces MonoBehaviour.Update with a centralized pipeline.
Handles execution order based on priority, fixed time or fixed frame updates, and per-entity timing via ScriptableObject update profiles.
Place UpdateManager prefab in your scene.
The manager is a singleton that automatically registers and handles all active UpdatableEntity instances.
Inherit from UpdatableEntity.
using ThornDuck.UpdateSystem;
using UnityEngine;
public class Entity : UpdatableEntity
{
protected override void OnStartEntity()
{
// Called once when registered
}
protected override void OnUpdateEntity()
{
// Custom update logic
}
}Create and assign a new UpdateProfile asset.
If no profile is assigned, the system automatically uses the manager’s default profile.
Updates every frame.
UpdateMode.DefaultEquivalent to a normal Unity Update().
Updates at fixed time intervals.
UpdateMode.FixedTimeUseful if you have functions that do not require full FPS.
Updates every X+1 frames.
UpdateMode.FixedFrameUseful if you want to execute two or more (heavy) functions in different frames.
Entities are automatically sorted by priority. Higher priority entities update first.
Changing priority at runtime automatically reinserts the entity in the correct order.
Use OnStartEntity() and OnUpdateEntity() instead of Start() and Update().
DeltaTimeSeconds replaces Time.deltaTime.