Time.realtimeSinceStartup

切换到手册
public static float realtimeSinceStartup ;

描述

游戏开始以来的实际时间(只读)。

在几乎所有情况下,您都可以并且应该使用 Time.time

realtimeSinceStartup 返回自启动以来的时间,不受 Time.timeScale 的影响。 在播放器暂停期间(在后台),realtimeSinceStartup 仍会不断增加。 当您需要通过将 Time.timeScale 设置为 0 来暂停游戏,但仍希望能够以某种方式测量时间时, realtimeSinceStartup 非常有用。

注意,realtimeSinceStartup 返回系统计时器报告的时间。 根据平台和硬件的不同,它可能会在数个连续帧中报告相同的时间。 如果您需要用某个值除以时间差,一定要考虑到这一点 (时间差可能会变为 0!)。

using UnityEngine;
using System.Collections;

// An FPS counter. // It calculates frames/second over each updateInterval, // so the display does not keep changing wildly. public class ExampleClass : MonoBehaviour { public float updateInterval = 0.5F; private double lastInterval; private int frames = 0; private float fps; void Start() { lastInterval = Time.realtimeSinceStartup; frames = 0; }

void OnGUI() { GUILayout.Label("" + fps.ToString("f2")); }

void Update() { ++frames; float timeNow = Time.realtimeSinceStartup; if (timeNow > lastInterval + updateInterval) { fps = (float)(frames / (timeNow - lastInterval)); frames = 0; lastInterval = timeNow; } } }