获得对手用户名google玩游戏实时统一

时间:2017-07-15 11:09:04

标签: android unity3d google-play-games multiplayer

我正在开发一款应用,它是一款在Unity中使用Google Play游戏资产的简单实时多人游戏。

这是1比1的比赛。

我想访问对手的用户名。

所以我可以在游戏开始时显示它(在随机匹配之后,或者创建与邀请匹配)。

我可以使用以下方式访问当前播放器用户名:

string PlayerUserName = PlayGamesPlatform.Instance.RealTime.GetSelf().DisplayName;

我试过了:

string PlayerUserName = PlayGamesPlatform.Instance.RealTime.GetSelf().ParticipantId;

它会返回大量的随机字符,我认为它是自己的玩家ID。

有可能吗?

2 个答案:

答案 0 :(得分:0)

您可以参考此thread,其中指出如果您使用Google Play Games plugin for Unity plugin,则可以通过Unity social interface访问Google Play游戏API。您可以使用Social.LoadUsers()加载播放器配置文件。请记住,播放器配置文件的内容受制于播放器的隐私设置。然后使用user.userName根据userID获取用户名。

答案 1 :(得分:0)

重播太晚了。但它可能会帮助别人......

string current_player_id = PlayGamesPlatform.Instance.RealTime.GetSelf ().ParticipantId;
Participant p = PlayGamesPlatform.Instance.RealTime.GetParticipant (current_player_id);

List participants = PlayGamesPlatform.Instance.RealTime.GetConnectedParticipants();
string player1_id = participants [0].ParticipantId;
Participant p1 = PlayGamesPlatform.Instance.RealTime.GetParticipant (player1_id);
string player2_id = participants [1].ParticipantId;
Participant p1 = PlayGamesPlatform.Instance.RealTime.GetParticipant (player2_id);
if (p1.ParticipantId== p.ParticipantId) {
 opponentname.text = p2.DisplayName;
} else if (p2.ParticipantId== p.ParticipantId)
{
PlayerName.text = p1.DisplayName;
}