не могу загрузить результаты из таблицы лидеров - PullRequest
0 голосов
/ 04 февраля 2019

Я настраиваю систему списка лидеров в моей игре Unity, используя плагин Google Play Games Services.

Я хочу загрузить счет, чтобы интегрировать их в свой пользовательский LeaderbordUI, я следовал документации ииспользовал ILeaderboard.LoadScores, но он не работает.

когда я проверяю logcat, я получаю это:

02-04 11: 03: 56.580: W / Unity (18969):!!![Play Games Plugin DLL] 04/02/19 11:03:56 +01: 00 ПРЕДУПРЕЖДЕНИЕ: ошибка возвращается из выборки: -108

Я попытался загрузитьScore методом "Social.LoadScores""и" PlayGamesPlatform.Instance.LoadScores ", но я получаю то же предупреждение.

PS: когда я использую Social.ShowLeaderboardUI (), он показывает мне таблицу лидеров.но когда я использую PlayGamesPlatform.Instance.ShowLeaderboardUI (LB_Stars.id), чтобы показать конкретную таблицу лидеров, это дает мне «хм, что-то пошло не так в играх»

public void LoadLeaderboard()
{
    LB_Stars.LoadScores(ok =>
    {
        if (ok)
        {
            LoadUsersAndDisplay(LB_Stars);

        }
        else
        {
            Debug.Log("Error retrieving STARS leaderboard");
        }
    });

}

internal void LoadUsersAndDisplay(ILeaderboard lbStar)
{

    Debug.Log("gonna load user and display them");

    List<string> userIds = new List<string>();

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

    Social.LoadUsers(userIds.ToArray(), (users) =>
    {
        string status = "Leaderboard loading: " + lbStar.title + " count = " +
            lbStar.scores.Length;
        foreach (IScore score in lbStar.scores)
        {
            IUserProfile user = FindUser(users, score.userID);

            if (user != null)
            {

                UserLeaderboardClone = Instantiate(UserLeaderboardPrefab);
                UserLeaderboardClone.name = score.rank.ToString();

                LeaderboardUserScript lbUser = UserLeaderboardClone.GetComponent<LeaderboardUserScript>();
                lbUser.transform.SetParent(LBScrollview.content.transform, false);

                FillUserInfo(lbUser, user, score);

            }
        }
    });
}

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Потратив на это пару часов, моя проблема заключалась в том, что моя игра заключалась в использовании идентификаторов таблицы лидеров из другого приложения.Так что это не удалось с этой «несанкционированной ошибкой», однако точная причина не была указана.

Причина, по которой это произошло, заключалась в том, что конфигурация игровых игр в единстве кэшировала старые значения.Когда вы открываете его - он имеет правильные идентификаторы, однако в сгенерированном файле GPGSids.cs - присутствуют неправильные идентификаторы.

Решение было просто восстановить его путем повторного сохранения конфигурации.

0 голосов
/ 05 февраля 2019

Хорошо, я понял это, основываясь на комментарии к github https://github.com/playgameservices/play-games-plugin-for-unity/issues/2045#issuecomment-350335234

...