4

我试图了解 Photon Networking Master Client 到底是什么。文档给出了该术语的以下使用场景:

在没有服务器的情况下,它可以负责处理只能由房间中的一个客户端执行的逻辑(例如,当每个人都准备好时开始比赛)。

为什么我要将某些服务器功能委托给其中一个客户端?Photon Server 不应该始终可用吗?

例如,在这个Photon 教程中,他们使用引用“非常方便的功能”:

PhotonNetwork.automaticallySyncScene = true

当这是真的时,MasterClient 可以调用 PhotonNetwork.LoadLevel() 并且所有连接的玩家将自动加载相同的级别。

如果他们有 Photon 服务器,为什么要给其中一个客户端同步所有人的权限?

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

1) 究竟什么是主客户端?

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

非常感谢!

4

1 回答 1

8

Photon server 其实可以做一点。基本上它只帮助客户交换消息。

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

你不应该太在意哪个客户端是主人。它是自动分配的。如果当前主服务器断开连接,房间中的下一个客户端将接管。如果需要,您仍然可以手动切换主客户端。

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

于 2016-06-14T11:18:51.657 回答