Пользовательский интерфейс Unity для Google Play - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь создать пользовательский интерфейс Leaderboard в Unity для Google Play. Я могу получить очки игрока, но не могу назвать имена игроков. Это мой код для получения их обоих:

public void ShowLeaderboards()
{
    leaderboardPanel.gameObject.SetActive(true);
    PlayGamesPlatform.Instance.LoadScores("MyLeaderboardID",
    LeaderboardStart.TopScores,
    10,
    LeaderboardCollection.Social,
    LeaderboardTimeSpan.AllTime,
    (LeaderboardScoreData data) =>
    {

        for (int i = 0; i < data.Scores.Length; i++)
        {
            PlayGamesScore score = (PlayGamesScore)data.Scores[i];
            scoreText.text = score.value.ToString();
        }
    });
    LoadLeaderboard();
 }

public void LoadLeaderboard()
{
    ILeaderboard lb = PlayGamesPlatform.Instance.CreateLeaderboard();
    lb.id = "MyLeadeboardID";
    lb.LoadScores(ok =>
    {
        if (ok)
        {
            LoadUsersAndDisplay(lb);
        }
        else
        {
            Debug.Log("Error retrieving leaderboardi");
        }
    });
}

internal void LoadUsersAndDisplay(ILeaderboard lb)
{
    // get the user ids
    List<string> userIds = new List<string>();

    foreach (IScore score in lb.scores)
    {
        userIds.Add(score.userID);
    }

    // load the profiles and display (or in this case, log)
    Social.LoadUsers(userIds.ToArray(), (users) =>
    {
        foreach (IScore score in lb.scores)
        {
            IUserProfile user = FindUser(users, score.userID);
            usersNames.Add(user.userName);
        }
    });
}

private IUserProfile FindUser(IUserProfile[] users, string userid)
{
    foreach (IUserProfile user in users)
    {
        if (user.id == userid)
        {
            return user;
        }
    }
    return null;
} 

Я проверил и обнаружил, что список userIds пуст после этого foreach (оценка IScore в lb.scores). Почему, когда я могу получить очки? У меня только один балл, я тестирую:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...