【发布时间】:2015-01-10 18:30:54
【问题描述】:
对不起我的英语。
我在 Unity 上开发了一个客户端-服务器游戏,我需要在客户端和服务器上使用相等的时间计数器来进行同步。在服务器端(Java)一切正常。
在客户端上,我尝试将 Fixed Time-step 设置为 0.001 并在 FixedUpdate 上计算时间。它可以工作,但在与其他脚本的一个线程中,有时会滞后。我在article
中对此深信不疑我也尝试在其他线程中计算时间,但是这段代码的时间错误(我尝试了 TICK_TIME 1 和 5)
while (started)
{
time += TICK_TIME;
Thread.Sleep(TICK_TIME);
}
如何实现稳定计数器?在 Unity 中是否可行?
【问题讨论】:
-
嗯,如果客户端的时间需要与服务器的时间同步,您可以并且应该在客户端上测量时间的唯一方法是让服务器将(权威)时间发送给客户端。请参阅en.wikipedia.org/wiki/Clock_synchronization 和此处的示例:gamedev.net/topic/648861-serverclient-time-synchronization
标签: c# multithreading timer unity3d