如何实现精准计时(毫秒级精度)
How to realize accurate time counter (millisecond precision)
对不起我的英语。
我在 Unity 上开发了一个客户端-服务器游戏,我需要在客户端和服务器上使用相同的时间计数器来进行同步。在服务器端 (Java) 一切正常。
在客户端上,我尝试将 Fixed Time-step 设置为 0.001 并在 FixedUpdate 上计算时间。它可以工作,但在与其他脚本的一个线程中,有时会滞后。我在这个 article
中确信了这一点
我也尝试在其他线程中计算时间,但是这段代码得到了错误的时间(我尝试了 TICK_TIME 1 和 5)
while (started)
{
time += TICK_TIME;
Thread.Sleep(TICK_TIME);
}
如何实现稳定计数器?在 Unity 中有可能吗?
http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch%28v=vs.110%29.aspx
var watch = Stopwatch.StartNew();
//Do work
Console.WriteLine("Time elapsed: {0}", watch.ElapsedMilliseconds);
对不起我的英语。
我在 Unity 上开发了一个客户端-服务器游戏,我需要在客户端和服务器上使用相同的时间计数器来进行同步。在服务器端 (Java) 一切正常。
在客户端上,我尝试将 Fixed Time-step 设置为 0.001 并在 FixedUpdate 上计算时间。它可以工作,但在与其他脚本的一个线程中,有时会滞后。我在这个 article
中确信了这一点我也尝试在其他线程中计算时间,但是这段代码得到了错误的时间(我尝试了 TICK_TIME 1 和 5)
while (started)
{
time += TICK_TIME;
Thread.Sleep(TICK_TIME);
}
如何实现稳定计数器?在 Unity 中有可能吗?
http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch%28v=vs.110%29.aspx
var watch = Stopwatch.StartNew();
//Do work
Console.WriteLine("Time elapsed: {0}", watch.ElapsedMilliseconds);