Unity API плагинов Google Play Services не синхронизирован с функцией пользовательского интерфейса Show Leaderboard?

Я использую Google Play Games Services Unity Plugin для создания Android-игры, как описано в: https://github.com/playgameservices/play-games-plugin-for-unity

Проблема:

Когда я загружаю оценки с помощью API (Social API или PlayGamesPlatform.Instance объекта плагина Google Play), я получаю устаревшие баллы. Но, когда я использую функцию ShowLeaderBoardUI (), оценки соответствуют правилу в графическом интерфейсе.

Таким образом, нет никаких проблем при размещении баллов.

Я использую следующий фрагмент для загрузки пользовательских баллов из Google Play Game Services ScoreBoard:

void LoadUsersAndDisplay(int leaderBoardID,ILeaderboard lb,LeaderBoardEntry[] resultingEntries) { // 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) PlayGamesPlatform.Instance.LoadUsers(userIds.ToArray(), (users) => { string status = "Leaderboard loading: " + lb.title + " count = " + lb.scores.Length; int currentUserIndex = 0; foreach(IScore score in lb.scores) { IUserProfile user = users[currentUserIndex]; status += "\n" + score.formattedValue + " by " + (string)( (user != null) ? user.userName : "**unk_" + score.userID + "**"); resultingEntries[currentUserIndex] = new LeaderBoardEntry(score.rank,user.userName,score.value); currentUserIndex++; } // Get the local user score LeaderBoardEntry localUserEntry = new LeaderBoardEntry(lb.localUserScore.rank, Social.localUser.userName,lb.localUserScore.value); // Notify the observers about the receiving of the scores foreach (LeaderBoardObserver currentObserver in observers) { Debug.Log ("Notifying the leaderboard observer"); currentObserver.OnScoresReceived (leaderBoardID,resultingEntries,localUserEntry); } Debug.Log(status); }); } public void getScores(int lbID){ ILeaderboard lb = PlayGamesPlatform.Instance.CreateLeaderboard(); lb.id = leaderboards [lbID].lbOfficialID; lb.timeScope = TimeScope.AllTime; lb.userScope = UserScope.Global; LeaderBoardEntry[] resultingEntries = null; lb.LoadScores(ok => { if (ok) { resultingEntries = new LeaderBoardEntry[lb.scores.Length]; LoadUsersAndDisplay(lbID,lb,resultingEntries); } else { Debug.Log("Error retrieving leaderboardi"); } }); Debug.Log ("Have " + observers.Count + " lbObservers"); } 

У меня есть следующий вывод, когда я печатаю полученную таблицу лидеров:

 >>Leaderboard loading: Quick Reaction Mode World Ranking count = 1 >>I/Unity (16088): 45 by firatercis 

Но когда я показываю все оценки времени для глобальных пользователей, у меня есть следующий снимок экрана:

Введите описание изображения здесь

Во-первых, табло было пустым, я набрал 45 очков. Я видел 45 точек в обеих сторонах, и проблем не было. Затем я набрал 50. Но результат, который я достиг API, никогда не обновляется.

Я удалил и переустановил игру, нет. Я очистил кэш приложения, и в любом месте не должно быть никакой копии номера 45, но я постоянно получаю 45 очков с помощью API. Пожалуйста, помогите, где я могу ошибаться?

Solutions Collecting From Web of "Unity API плагинов Google Play Services не синхронизирован с функцией пользовательского интерфейса Show Leaderboard?"

Возможно, ваша конфигурация не завершена, как показано в документации:

Добавьте достижения и списки лидеров в свою игру в консоли разработчика Google Play. Для каждого достижения и таблицы лидеров, которые вы настраиваете, обязательно обратите внимание на соответствующий идентификатор достижения или идентификатор группы лидеров, поскольку они будут необходимы при вызове API. Идентификаторы достижений и лидеров – это буквенно-цифровые строки (например, «Cgkx9eiuwi8_AQ»).

Повторите проверку кода.

Я решил эту проблему путем изменения LeaderboardManager.LoadLeaderboardData () для использования Types.DataSource.NETWORK_ONLY против CACHE_OR_NETWORK.

Убедитесь, что настройки панели лидеров в консоли разработчика Google Play соответствуют вашим потребностям. В частности, убедитесь, что в Ordering действительно установлено значение «Larger is better» и что у вас нет никаких наборов Limits . Возможно, переключение «Enable tamper protection» также является хорошей идеей …

Я бы написал это как комментарий и запросил некоторые разъяснения, но у меня нет точек репутации. 🙁