Unity Google Play 游戏 IsConnectedToRoom 检查

Posted

技术标签:

【中文标题】Unity Google Play 游戏 IsConnectedToRoom 检查【英文标题】:Unity Google Play Games IsConnectedToRoom Check 【发布时间】:2018-01-31 03:24:02 【问题描述】:

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

这是我写的:

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】:

这可能仍取决于实施的方式。根据document:

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

检测玩家何时断开连接

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

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

希望这会有所帮助。

【讨论】:

感谢您的回复,我不明白如何使用它,但我走的是另一条路。当用户转到主屏幕或另一个应用程序时,我的问题就出现了。当用户回到游戏时,他已经离开了房间,但即使其他参与者也离开了,游戏仍在运行(他有 LeaveRoom 回调)。所以我决定使用“OnApplicationPause()”,因为应用程序已暂停,我通过它运行我的代码。

以上是关于Unity Google Play 游戏 IsConnectedToRoom 检查的主要内容,如果未能解决你的问题,请参考以下文章

Unity Google Play 游戏插件:错误未授权

Unity 中的 Google Play 游戏服务无法进行身份验证

Google Play 游戏和 GoogleMobileAds 在 Unity 5 中无法协同工作

Unity Google Play 游戏创建游戏有邀请问题

Unity Google Play 游戏插件无法在 Xcode iOS 中编译

如何在 Unity 中添加 Google Play 游戏注册脚本