ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[Unity Mirror] 时间同步

2022-03-21 09:58:46  阅读:217  来源: 互联网

标签:同步 double time 毫秒 Unity 天后 Mirror NetworkTime


英文原文:

https://mirror-networking.gitbook.io/docs/guides/time-sync

  对于许多算法,您需要在客户端和服务器之间同步时钟。 Mirror 会自动为您执行此操作。

  要获取当前时间,请使用以下代码:

double now = NetworkTime.time;

  它将在客户端和服务器中返回相同的值。服务器启动时它从 0 开始。请注意,时间是双精度的,永远不应转换为浮点数。将其转换为浮点数意味着时钟将在一段时间后失去精度:

  • 1 天后,准确度下降到 8 毫秒
  • 10 天后,准确度为 62 毫秒
  • 30 天后,精度为 250 毫秒
  • 60 天后,精度为 500 毫秒

Mirror 还将计算应用程序看到的 RTT(往返时间):

double rtt = NetworkTime.rtt;

您可以测量准确性。

double time_standard_deviation = NetworkTime.timeSd;

例如,如果返回 0.2,则意味着时间测量值上下摆动大约 0.2 秒

通过使用 EMA 平滑值来补偿网络故障。
您可以配置希望发送 ping 的频率:

NetworkTime.PingFrequency = 2;

您还可以配置计算中使用多少个 ping 结果:

NetworkTime.PingWindowSize = 10;

标签:同步,double,time,毫秒,Unity,天后,Mirror,NetworkTime
来源: https://blog.csdn.net/u013716859/article/details/123613363

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有