// Update is called once per frame void Update() { if (controllerSystem.state != PlayerControllerSystem.State.traveling) { return; } if (timekeeper.getTime() <= waveController.waveStartTime) { // Done rewinding controllerSystem.underControl = true; controllerSystem.willStartWalking(); return; } controllerSystem.underControl = false; // rewinds at the speed of rewindingSpeed; timekeeper.immediateOffset(Time.deltaTime * rewindingSpeed * -1); }