Unity 中是否有 Processing 的 millis() 的替代品?
Is there a substitute to Processing's millis() in Unity?
我试图在 Unity 中制作一个计时器,它特别需要 Processing 中的 millis() 之类的东西。有没有类似或至少非常相似的东西?
我尝试用 Time.time 或 Time.deltaTime 做点什么,但我想不出任何东西。
您可以使用 C# 系统 API System.DateTime.UtcNow.Millisecond
或 System.DateTime.Now.Millisecond
(您时钟的当前时间)
在 Petrusion comment 之后,您可以使用更快的 System.Environment.TickCount
来获取计算机启动后的毫秒数
如果您需要从应用程序启动开始的时间,您可以为其创建一个单一行为包装器
using UnityEngine;
public class CustomTimer : MonoBehaviour
{
private int startTime = 0;
void Start()
{
startTime = System.Environment.TickCount;
}
public int MillisSinceStart()
{
return System.Environment.TickCount - startTime;
}
}
然后将它拖到场景中,获取它的引用并从任何地方调用timer.GetEllapsedTime()
Unity 也有时间和帧相关的东西在进行
例如,回调 void Update() { }
每帧调用一次,不像 void FixedUpdate() { }
每 0.02 秒左右调用一次(可以在设置中更改)
如果您正在制作动画,也许最好使用 frame-dependent 时间而不是常规时间,因为您的应用可能会变慢并导致在绘制时跳过某些帧
我试图在 Unity 中制作一个计时器,它特别需要 Processing 中的 millis() 之类的东西。有没有类似或至少非常相似的东西?
我尝试用 Time.time 或 Time.deltaTime 做点什么,但我想不出任何东西。
您可以使用 C# 系统 API System.DateTime.UtcNow.Millisecond
或 System.DateTime.Now.Millisecond
(您时钟的当前时间)
在 Petrusion comment 之后,您可以使用更快的 System.Environment.TickCount
来获取计算机启动后的毫秒数
如果您需要从应用程序启动开始的时间,您可以为其创建一个单一行为包装器
using UnityEngine;
public class CustomTimer : MonoBehaviour
{
private int startTime = 0;
void Start()
{
startTime = System.Environment.TickCount;
}
public int MillisSinceStart()
{
return System.Environment.TickCount - startTime;
}
}
然后将它拖到场景中,获取它的引用并从任何地方调用timer.GetEllapsedTime()
Unity 也有时间和帧相关的东西在进行
例如,回调 void Update() { }
每帧调用一次,不像 void FixedUpdate() { }
每 0.02 秒左右调用一次(可以在设置中更改)
如果您正在制作动画,也许最好使用 frame-dependent 时间而不是常规时间,因为您的应用可能会变慢并导致在绘制时跳过某些帧