使用 google play 游戏检索玩家排名

Posted

技术标签:

【中文标题】使用 google play 游戏检索玩家排名【英文标题】:Retrieve player rank with google play games 【发布时间】:2018-11-13 01:56:26 【问题描述】:

我想知道是否可以在排行榜数据中检索实际玩家的排名?

我想为自定义排行榜 UI 执行此操作。

我正在使用 unity 和 google 玩游戏

【问题讨论】:

【参考方案1】:

如果您使用的是 official google-play-games SDK,不确定如何获得排名。

使用 Unity 的Social API,您可以通过IScore.rank 获取玩家的排名。首先,使用Social.LoadScores 加载分数,这将为您提供IScore 的数组。循环遍历它并比较IScore.userID,直到找到要获得排名的用户ID,然后获取IScore.rank

void GetUserRank(string user, Action<int> rank)

    Social.LoadScores("Leaderboard01", scores =>
    
        if (scores.Length > 0)
        
            Debug.Log("Retrieved " + scores.Length + " scores");

            //Filter the score with the user name
            for (int i = 0; i < scores.Length; i++)
            
                if (user == scores[i].userID)
                
                    rank(scores[i].rank);
                    break;
                
            
        
        else
            Debug.Log("Failed to retrieved score");
    );

用法

int rank = 0;
GetUserRank("John", (status) =>  rank = status; );
Debug.Log("John's rank is: " + rank);

或者

string id = Social.localUser.id;
//string id = PlayGamesPlatform.Instance.localUser.id;
int rank = 0;
GetUserRank(id, (status) =>  rank = status; );
Debug.Log(id + "'s rank is: " + rank);

当然,您必须做一些身份验证工作,因为您可以这样做。

【讨论】:

以上是关于使用 google play 游戏检索玩家排名的主要内容,如果未能解决你的问题,请参考以下文章

google play 游戏是不是支持排名匹配和排行榜?

如何从 Google Play 游戏服务的排行榜中获得排名?

Google Play 游戏:向其他玩家发送消息

Google Play 多人游戏:与其他玩家没有连接

如何在使用 Google Play 游戏服务的实时多人游戏中使用机器人玩家?

登录 Google Play 游戏服务后获取玩家 ID