【发布时间】:2016-04-29 20:05:32
【问题描述】:
我们需要创建一个有 10 + 1 个用户的游戏。 10 名玩家将成为真正的用户 - 在这个多人在线游戏中。 第一个玩家是经销商,它将成为应用程序软件 - 他将像经销商一样工作。 该经销商不会是真正的玩家。该经销商将掷骰子。
我们如何在 photon PUN 中做到这一点?我们使用的是免费版 photon 现在。
【问题讨论】:
我们需要创建一个有 10 + 1 个用户的游戏。 10 名玩家将成为真正的用户 - 在这个多人在线游戏中。 第一个玩家是经销商,它将成为应用程序软件 - 他将像经销商一样工作。 该经销商不会是真正的玩家。该经销商将掷骰子。
我们如何在 photon PUN 中做到这一点?我们使用的是免费版 photon 现在。
【问题讨论】:
根据您使用的 Photon 客户端 SDK,您应该有一个主客户端更改时的回调(应该是“OnMasterClientSwitched”)。 当服务器检测到主客户端断开连接时触发。 主客户端应该是参与者编号最低的参与者,但有一种方法可以强制主客户端(从客户端更改它)。 如果您将数据保存在房间属性中或发送事件并可能缓存它们,则没有数据丢失的风险,因为只要房间仍然“活着”,它就会存在。另一边的 Actor 属性,应该在各自的 Actor 离开房间时清理。
但有一个棘手的情况:当主客户端没有响应并且没有明确断开连接时,服务器可能需要几秒钟(默认超时 10 秒)才能检测到该参与者超时并切换到新的参与者。如果您担心这种情况,例如,如果您以移动设备为目标,我们可以讨论可能的解决方案。
【讨论】: