Использую данный плагин для Unity3d.
Возникают трудности при работе с функцией LoadScores().
Есть две сцены на которых используются аналогичные методы вывода топа игроков. В первом случае все работает корректно, во втором содержится InternalError в свойстве Status возвращаемого объекта.
Пример рабочего (и вместе с тем нерабочего) кода:
PlayGamesPlatform.Instance.LoadScores(
_currentTopScoreType,
LeaderboardStart.TopScores,
10,
LeaderboardCollection.Public,
LeaderboardTimeSpan.AllTime,
(data) =>
{
var userIDs = data.Scores.Select(score => score.userID).ToArray();
Social.LoadUsers(userIDs, (users) =>
{
// Здесь отображаем очки
});
}
);
В нерабочем случае ответ с ошибкой приходит уже в data.Status. Единственной переменной, меняющейся в коде является _currentTopScoreType. Уже проверил, что в обоих случаях данный идентификатор присваивается корректно.
Инициализация GPGS производится в отдельном менеджере в загрузочной сцене (там же и аутентифицируется пользователь). Этот менеджер остается в иерархии объектов на протяжении всей работы приложения.
Вспомнив про DRY я перенес одинаковый код с разных сцен в метод данного менеджера:
public void LoadScores(string topScoreType, Action<LeaderboardScoreData, IUserProfile[]> callBackFunc)
{
PlayGamesPlatform.Instance.LoadScores(
topScoreType,
LeaderboardStart.TopScores,
10,
LeaderboardCollection.Public,
LeaderboardTimeSpan.AllTime,
(data) =>
{
var userIDs = data.Scores.Select(score => score.userID).ToArray();
Social.LoadUsers(userIDs, (users) =>
{
callBackFunc(data, users);
});
}
);
}
Сейчас с разных сцен (обозначим их СЦЕНА1 и СЦЕНА2) вызывается данная функция. Тестирование выявило еще более интересную особенность:
На СЦЕНА2 перед загрузкой топа у меня производится сохранение очков текущего пользователя. Думал, что связано с этим, но экспериментально не подтвердилось.
На горизонте уже маячит костыльное решение: грузить результаты на СЦЕНА2 после первой неудачной попытки, но очень хотелось бы разобраться в причине происходящего.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Текст парсится в хаотичном порядке, одно слово на первой строке, второе на 2 и тд
Не могу сделать C# обертку для enum C++ c помощью SWIGЗначение членов c++ enum, которые я хочу обернуть превосходят максимальное значение для Int32