Описание
Реальное время в секундах с момента запуска игры (только для чтения). Версия с двойной точностью realtimeSinceStartup.
Это обеспечивает большую точность, чем число с плавающей запятой или одиночное значение, особенно в течение длительных периодов реального времени. Почти во всех случаях используйте эквивалент realtimeSinceStartupAsDouble вместо realtimeSinceStartup. Почти во всех случаях вместо этого можно и нужно использовать Time.timeAsDouble.
Использование realtimeSinceStartupAsDouble полезно, если вы хотите установить для Time.timeScale нулевое значение, чтобы приостановить приложение, но при этом хотите каким-то образом измерять время. В сценариях редактора вы также можете использовать realtimeSinceStartupAsDouble для измерения времени, пока редактор находится в режиме паузы.
realtimeSinceStartupAsDouble возвращает время, указанное системным таймером. В зависимости от платформы и оборудования он может сообщать одно и то же время даже в нескольких последовательных кадрах. Если вы делите что-то на разницу во времени, примите это во внимание (например, разница во времени может стать равной нулю).
using UnityEngine;
using System.Collections;
// Счетчик FPS.
// Он вычисляет кадры/секунду для каждого updateInterval,
// так что дисплей не будет сильно меняться.
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;
}
}
}