Version: 2020.1

Time.timeScale

切换到手册
public static float timeScale ;

描述

时间流逝的标度。可用于慢动作效果。

timeScale 为 1.0 时,时间流逝的速度与实时一样快。 当 timeScale 为 0.5 时,时间流逝的速度比实时慢 2x。

timeScale 设置为 0 时,如果您的所有函数都是独立于帧率的, 则游戏基本上处于暂停状态。

timeScale 影响 Time 类的所有时间和增量时间测量变量(但 realtimeSinceStartupfixedDeltaTime 除外)。

如果您减小了 /timeScale/,建议也将 Time.fixedDeltaTime 减小相同的量。

timeScale 设置为 0 时,不会调用 FixedUpdate 函数。

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; } } }