通过 SyncVar 进行 Unity Networking 同步

Unity Networking synchronization via SyncVar

我正在编写一个 Unity 应用程序,它使用 Unity Networking 连接两个移动设备。一个充当主人(主机),另一个充当奴隶(客户端)。应用程序应同步从每个设备拍摄照片。

目前我正在使用 SyncVars 来实现这一点。每十帧,服务器更改一个 SyncVar,然后调用此变量的 onChange 方法,Host 和 Client 都会拍摄照片并使用 [Command] 方法将其发送回 Host。

我是 Unity Networking 的新手,所以这是我的第一个实现,我想这不是解决这个问题的最佳方法。

UNET 中是否有针对此用例的任何其他同步?

提前致谢, 米尔科

您可以在两个设备上都使用一种方法来根据时间调用。例如,将两个设备都设置为在 15:43:45 拍照。

然后从一个到另一个调用此方法,并且事先设置好时间。

他们的时钟越同步越好。也许你可以让他们连接到在线时钟。

尝试使用 RPC 方法(从服务器发送到每个客户端)来拍照。由于服务器本身也充当客户端,因此两者都应该(几乎)同步启动 RPC 方法。 当两个设备都在同一个网络中时,在客户端拍照应该不会有这么高的延迟。