0

我已经像教程中那样实现了网络游戏,客户端将 Cmd 火发送到服务器,然后服务器将向所有玩家生成子弹。

当我在局域网上玩它时一切都很顺利(ping < 20ms)。但是当我尝试使用 Match Maker 在 Internet 端运行时,ping 大于 80 毫秒,并且子弹在客户端上延迟。

游戏是可以射击的船,所以当船从左向右移动时,我开枪,子弹延迟了。当我检查其他游戏(非统一)时,子弹似乎在本地运行。但它不适用于 Unity,因为网络对象必须在服务器上生成。延迟拍摄仅适用于我的玩家。有什么办法可以解决延迟问题吗?谢谢你的帮助。

4

1 回答 1

0

您可以尝试计算击中客户端(因此您计算是否击中了敌人),如果确实击中了敌人,则可以通过网络发送伤害或函数/布尔值。

这将大大减少流量。并且最有可能解决您的问题。

查看这个统一文档以获取有关如何同步生命的更多信息。 https://unity3d.com/learn/tutorials/topics/multiplayer-networking/networking-player-health

于 2017-04-05T12:28:40.847 回答