В этом документе описывается настройка проекта Unity для использования плагина Google Play Games. Вы узнаете, как установить плагин и настроить проект Unity. В документе также описывается, как проверить службу входа.
Прежде чем начать
Ознакомьтесь с требованиями к программному обеспечению . Настройте Play Console и установите Unity Hub.
Настройте Play Console для своей игры.
Установите Unity Hub и создайте свою игру в Unity .
Установка плагина
Чтобы загрузить и установить плагин Google Play Games для Unity, выполните следующие действия в Unity Hub:
Загрузите репозиторий GitHub .
В каталоге
current-build
найдите файлunitypackage
. Этот файл представляет плагин. Например, он должен выглядеть следующим образом:current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
Настройте проект Unity
Чтобы настроить проект Unity в настройках плеера, выполните следующие действия:
Откройте свой игровой проект.
В Unity Hub нажмите «Активы» > «Импорт пакета» > «Пользовательский пакет» , чтобы импортировать файл
unitypackage
в активы вашего проекта.Убедитесь, что вашей текущей платформой сборки является Android .
В главном меню выберите Файл > Параметры сборки .
Выберите Android и нажмите «Сменить платформу» .
В меню «Окно» > «Google Play Игры» должен появиться новый пункт. Если его нет, обновите ресурсы, нажав «Ресурсы» > «Обновить» , а затем попробуйте снова настроить платформу сборки.
В Unity Hub выберите Файл > Параметры сборки > Настройки проигрывателя > Другие настройки .
В поле Целевой уровень API выберите версию.
В поле Scripting backend введите
IL2CPP
.В поле Целевые архитектуры выберите значение.
Запишите имя пакета package_name . Вы можете использовать эту информацию позже.

Создать новое хранилище ключей
Для подтверждения ваших учётных данных вам понадобится ключ. Выполните следующие действия:
- В Unity Hub нажмите Файл > Настройки сборки > Настройки проигрывателя .
- В разделе Настройки публикации нажмите Менеджер хранилища ключей .
- В окне менеджера хранилищ ключей нажмите Хранилище ключей > Создать новое > В любом месте .
- Выберите папку и укажите имя хранилища ключей.
- В поле Пароль введите пароль и подтвердите его.
- Нажмите Добавить ключ .
Запишите имя папки. Вы можете использовать это имя для создания учётных данных в Google Cloud.
Скопируйте ресурсы Android из Play Console
Каждое достижение, таблица лидеров и событие, создаваемые вами в Play Console, включают ресурс Android, который вы используете при настройке своего проекта Unity .
Чтобы получить ресурсы Android для вашей игры, выполните следующие действия:
В консоли Google Play откройте игру.
На странице «Службы Play Игр» — Конфигурация ( Развитие > Службы Play Игр > Настройка и управление > Конфигурация ) нажмите Получить ресурсы .
В окне «Ресурсы» выберите вкладку Android(XML) .
Выберите и скопируйте содержимое ресурсов Android (
AndroidManifest.xml
).
Добавьте ресурсы Android в свой проект Unity
Добавьте следующие ресурсы Android в ваш проект Unity:
В Unity Hub нажмите Окно > Google Play Игры > Настройка > Настройка Android .
- В поле Каталог для сохранения констант введите имя папки для файла констант.
В поле Имя класса констант введите имя создаваемого класса C#, включая пространство имен.
Например, если класс C# —
id.cs
, расположенный в разделе Assets > myproject > scripts > id.cs , имя класса констант может бытьmyproject.scripts.id
.В поле «Определение ресурсов» вставьте данные ресурсов Android (файл
AndroidManifest.xml
), скопированные из консоли Google Play.Необязательно: в поле «Идентификатор клиента» введите идентификатор клиента связанного веб-приложения.
Чтобы получить идентификатор клиента для вашей игры из Google Cloud, см. раздел Создание идентификаторов клиента .
Это необходимо только в том случае, если у вас есть веб-бэкэнд для вашей игры и вам нужен код авторизации сервера для обмена на токен доступа бэкэнд-сервера или если вам нужен идентификационный токен, чтобы игрок мог выполнять другие неигровые вызовы API.
Нажмите «Настройка» . Это настроит вашу игру с использованием идентификатора клиента и сгенерирует класс C#, содержащий константы для каждого из ресурсов Android.
В Unity Hub нажмите Окно > Google Play Игры > Настройка > Настройка ближайших подключений .
В поле Идентификатор службы близлежащего подключения введите package_name .
Используйте то же package_name , которое вы использовали при настройке проекта Unity .
Нажмите «Настройка» .
Выберите социальную платформу
Плагин Google Play Games Services реализует социальный интерфейс Unity для совместимости с играми, которые уже используют этот интерфейс при интеграции с другими платформами. Однако некоторые функции уникальны для Play Games и предлагаются как расширения стандартного социального интерфейса Unity.
Доступ к стандартным вызовам API осуществляется через объект Social.Active , который ссылается на интерфейс ISocialPlatform . Доступ к нестандартным расширениям Google Play Games Services осуществляется путем приведения объекта Social.Active к классу PlayGamesPlatform , в котором доступны дополнительные методы.
Используйте плагин, не переопределяя социальную платформу по умолчанию.
При вызове PlayGamesPlatform.Activate
Google Play Games Services становится реализацией вашей социальной платформы по умолчанию. Это означает, что плагин Google Play Games Services выполняет статические вызовы методов в Social
и Social.Active
, что является ожидаемым поведением для большинства игр, использующих этот плагин.
Однако, если по какой-либо причине вы хотите сохранить доступ к реализации по умолчанию (например, для отправки достижений и таблиц лидеров на другую социальную платформу), вы можете использовать плагин Google Play Games Services, не переопределяя реализацию по умолчанию. Для этого:
- Вызовите метод
PlayGamesPlatform.Activate
. - Если
Xyz
— имя метода, вызываемого в классеSocial
, не вызывайтеSocial.Xyz
. Вместо этого вызовитеPlayGamesPlatform.Instance.Xyz
. - Используйте свойство
PlayGamesPlatform.Instance
вместоSocial.Active
при взаимодействии с игровыми сервисами Google Play.
Таким образом, вы сможете отправлять результаты и достижения одновременно на две или более социальных платформ:
// Submit achievement to original default social platform
Social.ReportProgress("MyAchievementIdHere", 100.0f, callback);
// Submit achievement to Google Play
PlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, callback);
Проверьте службу входа
При запуске игры автоматически выполняется попытка подключения к игровым сервисам Play через службу входа . Если подключение успешно, игра выводит запрос на вход и готова к использованию плагина игровых сервисов Google Play для Unity.
Если пользователь никогда не пользовался сервисами Google Play Games на своем устройстве, он автоматически пройдет однократную настройку для создания учетной записи Play Games.
В методе Start
вашего скрипта прослушивайте результат попытки автоматического входа, извлекайте статус аутентификации и отключайте функции Play Games Services, если пользователь не вошел в систему.
Если версия плагина Unity ниже v11
, вы не сможете воспользоваться функцией входа.
using GooglePlayGames;
public void Start() {
PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication);
}
internal void ProcessAuthentication(SignInStatus status) {
if (status == SignInStatus.Success) {
// Continue with Play Games Services
} else {
// Disable your integration with Play Games Services or show a login button
// to ask users to sign-in. Clicking it should call
// PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
}
}
Код результата — это перечисление, которое можно использовать для определения причины сбоя входа.
Если вы предпочитаете использовать социальную платформу Unity, вы можете использовать следующий код:
using GooglePlayGames;
public void Start() {
PlayGamesPlatform.Activate();
Social.localUser.Authenticate(ProcessAuthentication);
}
Вы не сможете выполнять вызовы API игровых сервисов Google Play, пока не получите успешное возвращаемое значение от Authenticate
. Поэтому мы рекомендуем отображать экран ожидания в играх до тех пор, пока не будет вызван обратный вызов, чтобы пользователи не смогли начать игру до завершения аутентификации.
Используйте функцию подписи в приложении Play
Google управляет ключом подписи вашего приложения и защищает его с помощью Play App Signing. Вы можете использовать Play App Signing для подписи оптимизированных файлов Android APP Bundle . Play App Signing хранит ключ подписи вашего приложения в защищённой инфраструктуре Google. Чтобы использовать Play App Signing, необходимо сначала создать и скачать AAB-файл из Unity Hub. Затем вы можете загрузить AAB-файл в Play Console и создать внутренний тестовый релиз.
Создать AAB-файл
Чтобы создать AAB-файл в Unity Hub, выполните следующие действия:
- В Unity Hub нажмите Файл > Параметры сборки .
Выберите «Создать пакет приложений» (Google Play) .
Более подробную информацию см. в справочнике по настройкам сборки Android .
Нажмите «Создать» .
Загрузите файл AAB из Unity Hub.
Создайте релиз для внутреннего тестирования
Чтобы создать версию для внутреннего тестирования и добавить тестировщиков в Play Console, выполните следующие действия:
- В консоли Google Play выберите игру.
- Перейдите на страницу Тестирование и выпуск ( Тестирование > Внутреннее тестирование ).
- Нажмите «Загрузить» и выберите файл AAB.
- В поле «Сведения о выпуске» введите имя.
- Нажмите «Далее» и ознакомьтесь с подробностями выпуска.
- Нажмите «Сохранить и опубликовать» .
На вкладке «Тестировщики» нажмите «Создать список адресов электронной почты», чтобы добавить до 100 тестировщиков.
Для получения дополнительной информации см. Внутреннее тестирование: управление до 100 тестировщиками .
В поле URL-адрес обратной связи или адрес электронной почты введите URL-адрес обратной связи или адрес электронной почты для отправки отзыва.
Нажмите «Сохранить» .
Проверьте свои учетные данные для подписи приложения
- В консоли Google Play выберите игру.
- Перейдите на страницу тестирования и выпуска ( Настройка > Подписание приложений ).
- Проверьте учетные данные для подписи приложения.
Создайте и запустите проект
На этом этапе вы можете собрать и запустить проект игры. После запуска игры вы увидите автоматическую попытку входа.
Вам понадобится физическое устройство на базе Android с включенной отладкой по USB или эмулятор, который сможет запустить разработанный проект.
Получить коды аутентификации сервера
Чтобы получить доступ к API Google на внутреннем веб-сервере от имени текущего игрока, необходимо получить код аутентификации от клиентского приложения и передать его приложению веб-сервера. Затем этот код можно обменять на токен доступа для выполнения вызовов различных API. Подробнее о рабочем процессе см. в статье «Войти через Google для веб-сайтов» .
Чтобы получить код доступа на стороне сервера:
- Добавьте идентификатор веб-клиента для вашей игры в Play Console.
- В консоли Google Play выберите свою игру.
- На странице конфигурации ( Grow Users > Play Games Services > Настройка и управление > Конфигурация ) нажмите Добавить учетные данные .
- На странице «Добавить учетные данные» выберите Игровой сервер .
- Сгенерируйте идентификатор клиента OAuth 2.0 .
- Запишите значение идентификатора клиента. Вам потребуется указать его позже.
Добавьте идентификатор веб-клиента в центр Unity.
- В Unity Hub настройте Google Play Games для Unity и войдите в систему .
- В центре Unity выберите Окно > Google Play Игры > Настройка > Настройка Android .
- Введите значение идентификатора клиента.
Получите код авторизации сервера для дополнительных областей.
С#
using GooglePlayGames.BasicApi; // Define selectedScope having additional identity scopes. private List
selectedScopes = new List (); // Add scopes you want to request. selectedScopes.Add(AuthScope.OPEN_ID); selectedScopes.Add(AuthScope.PROFILE); selectedScopes.Add(AuthScope.EMAIL); // Call RequestServerSideAccess with additional scopes and retrieve // authcode and grantedscopes list. PlayGamesPlatform.Instance.RequestServerSideAccess( /* forceRefreshToken= */ false,selectedScopes (AuthResponse authResponse) => { string authCode = authResponse.GetAuthCode(); List grantedScopes = authResponse.GetGrantedScopes(); // send authCode to server... });
Настройка и добавление функций
Включите функции Play Games Services.
Добавьте функции в свою игру с помощью API игровых сервисов Play:
Recall API для Unity (поддерживается только для плагина Unity версии v11 и выше)