public static float timeScale ;


The scale at which time passes. This can be used for slow motion effects.

When timeScale is 1.0 time passes as fast as realtime. When timeScale is 0.5 time passes 2x slower than realtime.

When timeScale is set to zero the game is basically paused if all your functions are frame rate independent.

Except for realtimeSinceStartup and fixedDeltaTime, timeScale affects all the time and delta time measuring variables of the Time class.

If you lower timeScale it is recommended to also lower Time.fixedDeltaTime by the same amount.

FixedUpdate functions will not be called when timeScale is set to zero.

using UnityEngine;

public class Example : MonoBehaviour { // Toggles the time scale between 1 and 0.7 // whenever the user hits the Fire1 button.

private float fixedDeltaTime;

void Awake() { // Make a copy of the fixedDeltaTime, it defaults to 0.02f, but it can be changed in the editor this.fixedDeltaTime = Time.fixedDeltaTime; }

void Update() { if (Input.GetButtonDown("Fire1")) { if (Time.timeScale == 1.0f) Time.timeScale = 0.7f; else Time.timeScale = 1.0f; // Adjust fixed delta time according to timescale // The fixed delta time will now be 0.02 frames per real-time second Time.fixedDeltaTime = this.fixedDeltaTime * Time.timeScale; } } }