Я настраиваю систему таблицы лидеров в своей игре 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);
}
}
});
}