时间流逝的比例。
这可以用于慢动作效果或加速您的应用程序。当 timeScale 为 1.0 时,时间与实时一样快。当 timeScale 为 0.5 时,时间比实时慢 2 倍。
当 timeScale 设置为零时,如果所有函数都与帧率无关,您的应用程序就像暂停一样。负值将被忽略。
请注意,更改 timeScale 只会影响后续帧。每帧执行 MonoBehaviour.FixedUpdate 的频率取决于 timeScale。因此,要保持每帧的 FixedUpdate 回调数量不变,您还必须将 Time.fixedDeltaTime 乘以 timeScale。这种调整是否可取取决于游戏本身。
当 timeScale 设置为零时,FixedUpdate 函数和使用 WaitForSeconds 暂停的协程不会被调用。
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 real-time seconds per frame Time.fixedDeltaTime = this.fixedDeltaTime * Time.timeScale; } } }