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

时间:2016-05-16 12:16:57

标签: android unity3d google-play-services multiplayer prime31

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

Connecting players中所述,您可以使用RoomStatusUpdateListener回调来监控参与者的连接状态。如上所述:

  

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

2 - 有没有办法让播放器重新连接到房间?

实时多人游戏 - Gameplay声明:

  

一旦连接了房间所需的参与人数,就会认为房间已经填满了#39;和游戏玩法可以开始。参与者加入一个房间后,您的游戏可以让他们离开房间(有效地将他们从游戏中删除)。但是,没有新玩家可以在填满之后加入一个房间(甚至不填写参与者已经腾出的地点)。

除此之外,请参阅best practice for Real-time multiplayer

  

如果您未妥善离开房间,Google Play游戏服务将继续向客户发送活动和邀请通知。每当出现以下情况之一时,您应该离开活动房间:

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

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