Google Api Leaderboards возвращает разные userId в записях рекордах (в контексте sdk для unity)
Аналогичная проблема уже поднималась здесь.
Суть проблемы.
✅ Когда берем userId через PlayGamesPlatform.Instance.localUser.id получаем корректный ответ: 107594550310309856665
✅ Когда берем userId через LeaderboardScoreData.PlayerScore.userID получаем корректный ответ: 107594550310309856665
❌ Когда берем userId через LeaderboardScoreData.Scores[0].userID получаем id в каком-то другом формате: a_443231828705151536
Вопрос - почему и как так? Если кто-то сталкивался с этой проблемой, подскажите пожалуйста причину такого поведения.
Ответы (1 шт):
Автор решения: vitalik198
→ Ссылка
В качестве обходного пути я придумал такой костыль, чтобы проверить, что это действительно локальный пользователь:
using var currentPlayerInfo =
scoreHolder.Call<AndroidJavaObject>("getCurrentPlayerInfo");
var friendsListVisibilityStatusRaw =
currentPlayerInfo.Call<int>("getFriendsListVisibilityStatus");
var friendsListVisibilityStatus =
AndroidJavaConverter.ToFriendsListVisibilityStatus(friendsListVisibilityStatusRaw);
sLocalUser = friendsListVisibilityStatus > 0;