Описание
Время двойной точности в начале этого кадра (только для чтения). Это время в секундах с момента начала игры.
Time.timeAsDouble — время в секундах, в течение которого выполнялось приложение. Он доступен только для чтения.
Версия time с двойной точностью. Это обеспечивает большую точность, чем число с плавающей запятой или одиночное значение, особенно в течение длительных периодов реального времени. Почти во всех случаях следует использовать timeAsDouble, эквивалентный time.
Приложение получает текущее значение Time.timeAsDouble в начале каждого кадра, причем значение увеличивается с каждым кадром. Вызов timeAsDouble для каждого кадра
получает одно и то же значение. При вызове из FixedUpdate
он возвращает свойство Time.fixedTimeAsDouble.
Следует избегать регулярных (покадровых) вызовов: Time.timeAsDouble предназначен для указания продолжительности работы приложения, а не времени в рамка.
Значение Time.timeAsDouble не определено во время сообщений Awake
и начинается после завершения всех сообщений. Time.timeAsDouble не обновляется, если редактор приостановлен.
См. Time.realtimeSinceStartupAsDouble, чтобы узнать значение времени, на которое не влияет пауза.
//Если нажата кнопка Fire1, снаряд
// будет создаваться каждые 0,5 секунды.
using UnityEngine;
using System.Collections;
public class Example : MonoBehaviour
{
public GameObject projectile;
public float fireRate = 0.5f;
private double nextFire = 0.0f;
void Update()
{
if (Input.GetButton("Fire1") && Time.timeAsDouble > nextFire)
{
nextFire = Time.timeAsDouble + fireRate;
Instantiate(projectile, transform.position, transform.rotation);
}
}
}