检测其他玩家是否无意中离开(例如互联网断开连接)并重新连接 - Google玩实时多人游戏

Uzi*_*Uzi 6 android multiplayer unity-game-engine google-play-services prime31

我正在实施谷歌游戏服务实时多人游戏.

目前,如果我在一个客户端上关闭WIFI,则另一个客户端不会检测到连接丢失.没有调用PeerDisconnect事件.

1 - API是否提供了检查对等体是否仍然连接的内容?

2 - 有没有办法让玩家重新连接到房间?

Tey*_*yam 2

1 - API 是否提供任何内容来检查对等点是否仍处于连接状态?

如连接玩家中所述,您可以使用RoomStatusUpdateListener回调来监控参与者的连接状态。就像声明的那样:

要在所有玩家连接时收到通知,您的游戏可以使用回调RoomUpdateListener.onRoomConnected()。您的游戏还可以使用RoomStatusUpdateListener回调来监控参与者的连接状态。根据参与者的连接状态,您的游戏可以决定是否开始或取消游戏会话。

2 - 有什么办法让玩家重新连接到房间吗?

实时多人游戏 -游戏玩法规定:

一旦连接了房间所需数量的参与者,该房间就被视为“已满”并且游戏可以开始。参与者加入房间后,您的游戏可以允许他们离开房间(实际上是让他们退出游戏)。然而,在房间被“填满”后,任何新玩家都不能加入房间(甚至不能填补参与者腾出的位置)。

除此之外,参考实时多人游戏的最佳实践

如果您没有正确离开房间,Google Play 游戏服务将继续向客户端发送活动和邀请通知。每当发生以下情况之一时,您应该离开活动房间:

  • 游戏结束(例如,玩家赢得了比赛)。
  • 当你的游戏进入后台时。
  • 在 Android 上,请在以下情况下离开房间:
    • 玩家在等候室 UI 中取消游戏。
    • 回调中返回的响应码onActivityResult()GamesActivityResultCodes.RESULT_LEFT_ROOM
    • 该活动onStop()被调用。这可能表明您的 Activity 正在被销毁。在这种情况下,请离开房间并致电 disconnect()

希望这些链接能解决您所有的担忧。快乐编码!:)