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;
→ Ссылка