Описание
Реальное время в секундах с момента запуска игры (только чтение).
Это время в секундах с момента запуска приложения, и оно не является постоянным, если вызывается несколько раз в кадре. Time.timeScale не влияет на это свойство.
Почти во всех случаях вместо этого следует использовать Time.time или unscaledTime.
Использование realtimeSinceStartup полезно, если вы хотите установить Time.timeScale на ноль, чтобы приостановить приложение, но при этом хотите каким-то образом измерять время. В сценариях редактора вы также можете использовать realtimeSinceStartup для измерения времени, пока редактор находится в режиме паузы.
realtimeSinceStartup возвращает время, указанное системным таймером. В зависимости от платформы и оборудования он может сообщать одно и то же время даже в нескольких последовательных кадрах. Если вы делите что-то на разницу во времени, примите это во внимание (например, разница во времени может стать равной нулю).
using UnityEngine;
using System.Collections;
// Счетчик FPS.
// Он вычисляет кадры/секунду для каждого updateInterval,
// так что дисплей не будет сильно меняться.
public class ExampleClass : MonoBehaviour
{
public float updateInterval = 0.5F;
private double lastInterval;
private int frames;
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;
}
}
}