Unity Google Play游戏IsConnectedToRoom检查

时间:2017-08-22 18:17:42

标签: android unity3d real-time google-play-games multiplayer

我无法检查参与者是否仍然连接到房间。

我写了这个:

bool status=GooglePlayGames.Native.PInvoke.MultiplayerParticipant.AutomatchingSentinel().IsConnectedToRoom();

if (status = true) 
{
    this.gameObject.GetComponent<Text> ().text = "participant is connected";
}

if (status = false) 
{
    this.gameObject.GetComponent<Text> ().text = "participant left";
}`

当玩家连接时,会显示“参与者已连接”。

但是当玩家按下主页按钮并返回到屏幕时,参与者已经呼叫OnPeersDisconnected并离开房间。但对于实际的玩家,仍然会显示“参与者已连接”。

我怎么知道IsConnectedToRoom()何时为假?

1 个答案:

答案 0 :(得分:0)

这可能仍取决于实施方式。根据{{​​3}}:

  

确保仔细构建您的游戏逻辑,以考虑每个参与者的状态和连接性。例如,要确定所有赛车手是否已越过终点线,您的游戏应该只考虑连接的参与者;有些人可能已离开房间或从未接受邀请。

检测播放器何时断开连接

  

由于网络连接或服务器问题,您的播放器可能与房间断开连接。要在播放器与会议室断开连接时收到通知,请执行 OnConnectedSetChanged 方法。

virtual void OnConnectedSetChanged(RealTimeRoom const &room) {
  // Check the room's participants to see who connected/disconnected.
}

希望这有帮助。