#unity/日常积累 # [Time](https://docs.unity.cn/cn/2019.4/ScriptReference/Time.html).realtimeSinceStartup public static float realtimeSinceStartup ; ## 描述 游戏开始以来的实际时间(只读)。 在几乎所有情况下,您都可以并且应该使用 [Time.time](https://docs.unity.cn/cn/2019.4/ScriptReference/Time-time.html)。 `realtimeSinceStartup` 返回自启动以来的时间,不受 [Time.timeScale](https://docs.unity.cn/cn/2019.4/ScriptReference/Time-timeScale.html) 的影响。 在播放器暂停期间(在后台),`realtimeSinceStartup` 仍会不断增加。 当您需要通过将 [Time.timeScale](https://docs.unity.cn/cn/2019.4/ScriptReference/Time-timeScale.html) 设置为 0 来暂停游戏,但仍希望能够以某种方式测量时间时, `realtimeSinceStartup` 非常有用。 注意,`realtimeSinceStartup` 返回系统计时器报告的时间。 根据平台和硬件的不同,它可能会在数个连续帧中报告相同的时间。 如果您需要用某个值除以时间差,一定要考虑到这一点 (时间差可能会变为 0!)。 ``` cs 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; } } } ```