从游戏开始以来(只读)的实时秒数。realtimeSinceStartup 的双精度版本。
它比浮点或单精度值提供更高的精度,尤其是在较长的实际时间段内。在几乎所有情况下,使用 realtimeSinceStartupAsDouble 等同于 realtimeSinceStartup。在几乎所有情况下,您都可并且应该改用 Time.timeAsDouble。
如果您要将 Time.timeScale 设置为零以暂停应用程序,但仍希望以某种方式测量时间,那么使用 realtimeSinceStartupAsDouble 很有用。在编辑器脚本中,您还可以使用 realtimeSinceStartupAsDouble 来测量编辑器暂停时的时间。
realtimeSinceStartupAsDouble 以系统计时器报告的时间返回时间。根据平台和硬件的不同,即使在连续几帧中,它也可能会报告相同的时间。如果您将某个内容除以时间差,请考虑这一点(例如,时间差可能会变为零)。
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.realtimeSinceStartupAsDouble; frames = 0; }
void OnGUI() { GUILayout.Label("" + fps.ToString("f2")); }
void Update() { ++frames; double timeNow = Time.realtimeSinceStartupAsDouble; if (timeNow > lastInterval + updateInterval) { fps = (float)(frames / (timeNow - lastInterval)); frames = 0; lastInterval = timeNow; } } }