我正在使用Photon和Unity3D引擎构建多人游戏。 我正在使用photonView.RPC在客户端之间发送数据和值。但有时由于网络问题,发送的RPC无法在客户端中执行。
有没有办法可以从客户端(谁发送RPC)检查RPC是否已成功发送,如果没有,则再次发送RPC?
答案 0 :(得分:2)
从概念上讲,你能做到的唯一方法就是,
A发送带有身份代码的消息(例如," 321321777")
A等待确认......
B收到消息
B发送消息"我收到321321777"
这真的是你所能做的一切。请注意,这引入了超时的概念。以上实际上更像是这样......
A发送带有身份代码的消息(例如," 321321777")
A等待确认......
如果在(比方说)0.5秒后没有确认,请再次发送。 继续这样做。
B收到了消息。标签是321321777
B发送消息"我收到321321777"
" 321321777"的更多副本收到B, B忽略它。但是:如果多个" 321321777"由B收到,B再次发送越来越多的确认消息" 321321777"
值得注意的是,作为一般规则,"视频游戏不会像这样工作。"通常情况下,你只需要发送数以万计的职位(或者其他什么),如果错过了一些职位,那就无所谓了。
不要忘记Unity网络是否可靠发送"无论如何对你来说 - 并且在" PUN"中可能有这样一个概念。