не могу загрузить результаты из таблицы лидеров

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

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

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

02-04 11:03:56.580: W/Unity(18969): !!! [DLL плагина Play Games] 04.02.19 11:03:56 +01:00 ПРЕДУПРЕЖДЕНИЕ. При извлечении возвращена ошибка: -108

Я пытался загрузить счет с помощью методов "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);

            }
        }
    });
}

person Besbes Salma    schedule 04.02.2019    source источник
comment
Можете ли вы показать более подробную ошибку, чем указано выше, чтобы сообщество могло проверить?   -  person MαπμQμαπkγVπ.0    schedule 05.02.2019
comment
Я понял это, просто удалил старую конфигурацию игры Google Play и начал все сначала, теперь все работает отлично!   -  person Besbes Salma    schedule 05.02.2019


Ответы (2)


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

person Besbes Salma    schedule 05.02.2019

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

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

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

person Tomov    schedule 01.03.2019