void Update() { if (!isRewinding) { timeSinceLastLoop += Time.deltaTime; roundedTime = (int)timeSinceLastLoop; } else { decreasingTime -= Time.deltaTime; roundedTime = (int)decreasingTime; rewindTimeScale += Time.deltaTime; // increases with time rewindTimeScale = Mathf.Clamp(rewindTimeScale, 1f, 20f); Time.timeScale = rewindTimeScale; if (decreasingTime < 0) { StopRewind(); rewindTimeScale = timeScale; } } timerUI.UpdateTimerText(roundedTime); if (isHazardsActive) { HandleHazardTrigger(combustionTriggerTime, Hazard.combustion); HandleHazardTrigger(freezeTriggerTime, Hazard.freeze); HandleHazardTrigger(secondCombustionTriggerTime, Hazard.combustion); HandleHazardTrigger(secondFreezeTriggerTime, Hazard.freeze); HandleHazardTrigger(thirdCombustionTriggerTime, Hazard.combustion); } HandleDebugMode(); }