本帧开始时的双精度时间(只读)。这是从游戏开始以来的时间(以秒为单位)。
Time.timeAsDouble 应用程序运行时间的秒数,只读。
双精度的 time 版本,它比浮点数或单精度值提供了更高的精度,尤其是在现实世界的较长的时间段内。在几乎所有情况下,都应使用 timeAsDouble 而不是 time。
应用程序在每一帧开始时都会收到当前 Time.timeAsDouble,其值会随着帧数而增加。每一帧的 timeAsDouble 调用都会接收相同的值。从 FixedUpdate
调用时,会返回 Time.fixedTimeAsDouble 属性。
应避免定期(每一帧)调用:Time.timeAsDouble 用于提供应用程序的运行时长,而不是每一帧的时间。
在 Awake
消息期间,Time.timeAsDouble 值是未定义的,并且在完成所有消息后才会启动。Time.timeAsDouble 在编辑器暂停时不会更新。请参见 Time.realtimeSinceStartupAsDouble,以获取不受暂停影响的时间值。
//If the Fire1 button is pressed, a projectile //will be Instantiated every 0.5 seconds.
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); } } }