使用谷歌玩游戏检索玩家排名

时间:2018-06-03 16:33:22

标签: c# android unity3d google-play-games rank

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

我想为自定义排行榜用户界面执行此操作。

我正在使用团结和谷歌玩游戏

1 个答案:

答案 0 :(得分:2)

如果您使用的是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);

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