我试图了解光子网络究竟是什么主客户端。文档为此术语提供folowing使用方案:
如果没有服务器,它可以负责处理逻辑 应该只由一个房间的一个客户执行(例如开始比赛 当每个人都准备好了。)
为什么我要将某些服务器功能委托给其中一个客户端?不是光子服务器应该永远可用吗?
例如,在this Photon教程中,他们使用引用"非常方便的功能":
PhotonNetwork.automaticallySyncScene = true
如果是这样,MasterClient可以调用 PhotonNetwork.LoadLevel()和所有连接的玩家将自动进行 加载相同级别。
为什么让其中一个客户专用同步所有人,如果他们有光子服务器呢?
总结一下,我有两个问题:
1)什么是主客户端?
2)有哪些典型的使用场景?
非常感谢!
答案 0 :(得分:6)
Photon服务器实际上可以做一点。基本上它只能帮助客户与消息交换。
由于服务器无法运行游戏逻辑,因此您有两个选项,即在所有客户端上并行运行游戏逻辑,或者选择一个执行所有计算的客户端,并将结果游戏状态发送给所有其他客户端。有了这样的权威客户端,让所有客户端保持同步就容易得多。
您不应该关心哪个客户是主人。它是自动分配的。如果当前主设备断开连接,则房间中的下一个客户端将接管。如果需要,您仍然可以手动切换主客户端。
实现游戏逻辑时,使用PhotonNetwork.isMasterClient属性检查当前客户端是否为主服务器。如果要从非主客户端触发某些操作,只需将RPC发送给主服务器,要求它执行操作。