unity3d - 何时使用 Photon Networking 主客户端?

标签 unity3d photon

我试图了解 Photon Networking 到底是什么 主客户端。 文档给 folowing该术语的使用场景:

In absence of a server, it can be made responsible for handling logic that should only be executed by one client in a room (e.g. starting a match when everyone is ready).



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

例如,在 this他们使用 Photon 教程引用“非常方便的功能”:
PhotonNetwork.automaticallySyncScene = true

When this is true, the MasterClient can call PhotonNetwork.LoadLevel() and all connected players will automatically load that same level.



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

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

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

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

非常感谢你!

最佳答案

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

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

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

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

关于unity3d - 何时使用 Photon Networking 主客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37743191/

相关文章:

c# - 在 foreach 循环中抛出 IndexOutOfRangeException

c# - 如何从 OwnerActorNr 获取玩家姓名 | PUN2

ios - 将 Unity 与 native IOS 代码集成失败

unity3d 船舶漂浮在水面上的问题

c# - 检测光标的更好方法?

eclipse - Subclipse 在 SVN 访问上导致 eclipse photon 崩溃

java - Actionscript Mobile 项目中的 Photon Cloud 出现 Java 编译错误

unity-game-engine - 在 Unity 3D 中使用 PUN2 进行 VR 多人游戏体验时出现问题

c# - 从 Android 调用 C# Unity 脚本

c# - 通过反射设置变量