Авторские права (c) принадлежат Google Inc., 2014 г. Все права защищены.
Плагин Google Play Games для Unity® — это проект с открытым исходным кодом, цель которого — предоставить плагин, позволяющий разработчикам игр интегрироваться с API Google Play Games из игры, написанной на Unity®. Однако этот проект никоим образом не поддерживается и не контролируется Unity Technologies.
Unity® является торговой маркой Unity Technologies.
iOS является торговой маркой Apple, Inc.
Загрузите пакет со страницы выпуска Github.
Плагин Google Play Games для Unity позволяет получить доступ к API Google Play Games через социальный интерфейс Unity. Плагин обеспечивает поддержку следующих функций Google Play Games API:
войти
друзья
разблокировать/показать/увеличить достижение
опубликовать результат в таблице лидеров
сохранение в облаке, чтение/запись
показать встроенный интерфейс достижений/таблиц лидеров
события
ближайшие соединения
ВНИМАНИЕ . Эта версия плагина больше не поддерживает iOS. Игровые сервисы Google Play для iOS устарели и вряд ли будут работать должным образом. Не используйте игровые сервисы Google Play для iOS в новых приложениях. Более подробную информацию можно найти в сообщении блога об объявлении об устаревании.
Функции:
простая настройка проекта с графическим интерфейсом (интегрирована в графический интерфейс Unity)
нет необходимости переопределять/настраивать активность игрока
нет необходимости переопределять/настраивать AndroidManifest.xml
Инструкции по использованию плагина можно найти в этом руководстве для разработчиков.
Пример приложения, демонстрирующего использование игр Google Play, см. в проекте SmokeTest;
Если вы уже интегрировали свой проект с предыдущей версией плагина и хотите перейти на новую версию, обратитесь к инструкциям по обновлению.
Чтобы получить доступ к API Google на внутреннем веб-сервере от имени текущего игрока, вам необходимо получить код аутентификации из клиентского приложения и передать его в приложение веб-сервера. Затем этот код можно обменять на токен доступа для выполнения вызовов различных API. Более подробную информацию об этом процессе см. в разделе Вход в Google для веб-сайтов.
Чтобы получить код аутентификации сервера:
Настройте идентификатор веб-клиента веб-приложения, связанного с вашей игрой, в игровой консоли Play.
Вызовите PlayGamesClientConfiguration.Builder.RequestServerAuthCode(false)
при создании конфигурации.
Вызовите PlayGamesPlatform.Instance.GetServerAuthCode()
после аутентификации игрока.
Передайте этот код вашему серверному приложению.
PlayGamesPlatform.Instance.RequestServerSideAccess(/*forceRefreshToken= */ false,code -> { // отправляем код на сервер});
Размер плагина Unity Play Games Services можно уменьшить, удалив код функций Play Games Services, которые не используются в вашей игре, с помощью Proguard. Proguard удалит код плагина Play Games Unity для функций, которые не используются в вашей игре, поэтому ваша игра поставляется только с необходимым кодом и сводит к минимуму влияние размера при использовании игровых сервисов Play.
Кроме того, можно уменьшить размер всего проекта Unity с помощью функции удаления управляемого кода Unity, которая сожмет весь проект. Это можно использовать вместе с Proguard.
Перейдите в File > Build Settings > Player Settings
и щелкните раздел Publishing Settings
. Выберите Proguard
for Minify > Release
. Затем включите User Proguard File
. Если вы хотите, чтобы плагин также был защищен для отладочных APK, вы можете выбрать Proguard
for Minify > Debug
.
Скопируйте содержимое конфигурации proguard в Assets/Plugins/Android/proguard-user.txt
.
Когда вы вызываете PlayGamesPlatform.Activate
, Google Play Games становится вашей реализацией социальной платформы по умолчанию, а это означает, что статические вызовы методов в Social
и Social.Active
будут выполняться плагином Google Play Games. Это желаемое поведение для большинства игр, использующих плагин.
Однако, если по какой-то причине вы хотите сохранить доступной реализацию по умолчанию (например, чтобы использовать ее для отправки достижений и таблиц лидеров на другую социальную платформу), вы можете использовать плагин Google Play Games, не переопределяя плагин по умолчанию. Для этого:
Не вызывайте PlayGamesPlatform.Activate
Если Xyz
— это имя метода, который вы хотите вызвать в классе Social
, не вызывайте Social.Xyz
. Вместо этого вызовите PlayGamesPlatform.Instance.Xyz
Не используйте Social.Active
при взаимодействии с Google Play Games. Вместо этого используйте PlayGamesPlatform.Instance
.
Таким образом, вы даже можете отправлять результаты и достижения одновременно в две или более социальные платформы:
// Отправляем достижение в исходную социальную платформу по умолчанию Social.ReportProgress("MyAchievementIdHere", 100.0f, callback);// Отправляем достижение в Google PlayPlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, callback);
В этом разделе перечислены люди, которые внесли свой вклад в этот проект, написав код, улучшив документацию или исправив ошибки.
Dgizusse за то, что выяснил, что установка JAVA_HOME необходима в Windows.
antonlicht за исправление ошибки с типом параметра showErrorDialog в библиотеке поддержки.
pR0Ps за исправление проблемы, из-за которой OnAchievementsLoaded не принимал код результата OPERATION_DEFERRED как успешный.
friikyeu за помощь в отладке проблемы, из-за которой вызовы API ставились в очередь, а не выполнялись даже при подключении.