Version: Unity 6.0 (6000.0)
语言 : 中文
处理时间变化
捕获帧率

游戏内时间与现实时间

Time.timeScale 属性定义游戏世界中时间相对于现实时间的流逝速率。Time.timeScale 值为 1.0 表示游戏内时间与现实时间一致。值为 2.0 会使游戏中的时间流逝速度是现实世界中的两倍,游戏中的动作会加快。值为 0.5 会将游戏速度减慢到半速。值为零会使游戏内时间完全停止。

Time.timeScale 实际上并不会减慢代码的执行速度,而是会通过Time.deltaTimeTime.fixedDeltaTime 来改变传递给 UpdateFixedUpdate 函数的时间步长。

当你降低时间缩放比例时,你的 Update 函数被调用的频率可能依旧不变,但每一帧中 Time.deltaTime 的值将会变小。其他脚本函数不受时间缩放的影响,所以举例来说,当游戏暂停时,你可以显示一个能进行正常交互的 GUI。

对于诸如慢动作之类的特殊时间效果,有时放慢游戏时间的流逝是很有用的,这样代码中的动画和基于时间的计算就能以更慢的节奏进行。此外,有时可能希望完全冻结游戏时间,就像游戏暂停时一样。

时间 (Time) 窗口有一个属性可用于全局设置时间标度,但使用 Time-timeScale 属性从脚本设置该值通常更有用:

//C# script example
using UnityEngine;
using System.Collections;

public class ExampleScript : MonoBehaviour {
    void Pause() {
        Time.timeScale = 0;
    }
    
    void Resume() {
        Time.timeScale = 1;
    }
}

其他资源

处理时间变化
捕获帧率
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961