update method
Per-frame update: Schedules.postPhysics (the frame's fixed steps and
physics integration have all run by the time the scene calls this), then
onCommandBoundary, onBeforeUpdate, Schedules.update,
onCommandBoundary again (where the Flutter Game mounts nodes spawned
during update), Schedules.renderSync, and finally onFrameEnd (e.g.
flush scene-graph mutations) before render.
deltaSeconds arrives already clock-scaled under the standard driver:
it is the value frameStart returned, routed through Scene.update's
component walk. FrameTime.unscaledDelta (set at frameStart) carries
this frame's wall delta.
Implementation
void update(double deltaSeconds) {
app.world.resources.get<FrameTime>().delta = deltaSeconds;
app.runSchedule(Schedules.postPhysics);
onCommandBoundary?.call();
onBeforeUpdate?.call();
app.runSchedule(Schedules.update);
onCommandBoundary?.call();
app.runSchedule(Schedules.renderSync);
onFrameEnd?.call();
}