何时使用Photon Networking主客户端?

时间:2016-06-10 08:12:11

标签: unity3d photon

我试图了解光子网络究竟是什么主客户端。文档为此术语提供folowing使用方案:

  

如果没有服务器,它可以负责处理逻辑   应该只由一个房间的一个客户执行(例如开始比赛   当每个人都准备好了。)

为什么我要将某些服务器功能委托给其中一个客户端?不是光子服务器应该永远可用吗?

例如,在this Photon教程中,他们使用引用"非常方便的功能":

PhotonNetwork.automaticallySyncScene = true

  

如果是这样,MasterClient可以调用   PhotonNetwork.LoadLevel()和所有连接的玩家将自动进行   加载相同级别。

为什么让其中一个客户专用同步所有人,如果他们有光子服务器呢?

总结一下,我有两个问题:

1)什么是主客户端?

2)有哪些典型的使用场景?

非常感谢!

1 个答案:

答案 0 :(得分:6)

Photon服务器实际上可以做一点。基本上它只能帮助客户与消息交换。

由于服务器无法运行游戏逻辑,因此您有两个选项,即在所有客户端上并行运行游戏逻辑,或者选择一个执行所有计算的客户端,并将结果游戏状态发送给所有其他客户端。有了这样的权威客户端,让所有客户端保持同步就容易得多。

您不应该关心哪个客户是主人。它是自动分配的。如果当前主设备断开连接,则房间中的下一个客户端将接管。如果需要,您仍然可以手动切换主客户端。

实现游戏逻辑时,使用PhotonNetwork.isMasterClient属性检查当前客户端是否为主服务器。如果要从非主客户端触发某些操作,只需将RPC发送给主服务器,要求它执行操作。