游戏开始以来的实际时间(只读)。
在几乎所有情况下,您都可以并且应该使用 Time.time。realtimeSinceStartup
返回自启动以来的时间,不受 Time.timeScale 的影响。
在玩家暂停期间(在后台),realtimeSinceStartup
仍会不断增加。
当您需要通过将 Time.timeScale 设置为 0 来暂停游戏,但仍希望能够以某种方式测量时间时,
realtimeSinceStartup
非常有用。
注意,realtimeSinceStartup
返回系统计时器报告的时间。
根据平台和硬件的不同,它可能会在数个连续帧中报告相同的时间。
如果您需要用某个值除以时间差,一定要考虑到这一点
(时间差可能会变为 0!)。
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
void Example() {
print(Time.realtimeSinceStartup);
}
}
另一个示例:
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;
}
}
}