Этот документ поможет вам настроить ваш проект Unity для использования плагина Google Play Games для Unity. Вы узнаете, как установить плагин и настроить ваш проект 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» выберите версию.
В поле «Скриптинг бэкэнда» введите
IL2CPP
.В поле «Целевые архитектуры» выберите значение.
Запишите имя пакета package_name . Эту информацию вы сможете использовать позже.

Создать новое хранилище ключей
Для проверки ваших учетных данных вам нужен ключ. Выполните следующие действия:
- В Unity Hub нажмите Файл > Параметры сборки > Параметры проигрывателя .
- В разделе «Параметры публикации» нажмите «Диспетчер хранилища ключей» .
- В окне менеджера хранилищ ключей нажмите Хранилище ключей > Создать новое > В любом месте .
- Выберите папку и укажите имя хранилища ключей.
- В поле Пароль введите пароль и подтвердите его.
- Нажмите Добавить ключ .
Запомните имя папки. Вы можете использовать это имя для создания учетных данных в Google Cloud.
Скопируйте ресурсы Android из Play Console
Каждое достижение, таблица лидеров и событие, создаваемое вами в Play Console, включает ресурс Android, который вы используете при настройке проекта Unity .
Чтобы получить ресурсы Android для вашей игры, выполните следующие действия:
В Google Play Console откройте игру.
На странице «Play Games Services — Конфигурация» ( Grow > Play Games Services > Настройка и управление > Конфигурация ) нажмите «Получить ресурсы» .
В окне «Ресурсы» щелкните вкладку 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 Console.Необязательно: в поле «Идентификатор клиента» введите идентификатор клиента связанного веб-приложения.
Чтобы получить идентификатор клиента для вашей игры из 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 становится реализацией вашей социальной платформы по умолчанию, что означает, что статические вызовы методов в Social
и Social.Active
будут выполняться плагином Google Play Games Services. Это поведение большинства игр, использующих плагин.
Однако, если по какой-то причине вы хотите сохранить доступной реализацию по умолчанию (например, использовать ее для отправки достижений и таблиц лидеров на другую социальную платформу), вы можете использовать плагин Google Play Games Services, не переопределяя реализацию по умолчанию. Для этого:
- Не вызывайте
PlayGamesPlatform.Activate
- Если
Xyz
— это имя метода, который вам нужно вызвать в классеSocial
, не вызывайтеSocial.Xyz
. Вместо этого вызовитеPlayGamesPlatform.Instance.Xyz
- Не используйте
Social.Active
при взаимодействии с Google Play Games Services. Вместо этого используйтеPlayGamesPlatform.Instance
.
Таким образом, вы даже сможете отправлять результаты и достижения одновременно на две или более социальных платформы:
// 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 Games Services автоматически осуществляется с помощью службы Sign-in при открытии игры. Если подключение успешно, игра отображает запрос на вход и готова использовать плагин Google Play Games Services для Unity.
Если пользователь никогда не пользовался игровыми сервисами Google Play на своем устройстве, он автоматически пройдет однократную настройку для создания учетной записи 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 Games Services, пока не получите успешное возвращаемое значение от 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 Console выберите игру.
- Перейдите на страницу Тестирование и выпуск ( Тестирование > Внутреннее тестирование ).
- Нажмите «Загрузить» и выберите файл AAB.
- В поле «Сведения о выпуске» введите имя.
- Нажмите «Далее» и ознакомьтесь с подробностями выпуска.
- Нажмите Сохранить и опубликовать .
На вкладке «Тестировщики» нажмите «Создать список адресов электронной почты», чтобы добавить до 100 тестировщиков.
Для получения дополнительной информации см. Внутреннее тестирование: управление до 100 тестировщиками .
В поле URL-адрес отзыва или адрес электронной почты введите URL-адрес отзыва или адрес электронной почты для отправки отзыва.
Нажмите «Сохранить» .
Проверьте учетные данные для подписи приложения
- В Google Play Console выберите игру.
- Перейдите на страницу тестирования и выпуска ( Настройка > Подписание приложений ).
- Проверьте учетные данные для подписи приложения.
Постройте и запустите проект
На этом этапе вы можете построить и запустить игровой проект. Когда игра начнется, вы увидите автоматическую попытку входа.
Вам понадобится физическое устройство на базе Android с включенной функцией отладки по USB или эмулятор, который сможет запустить разработанный проект.
Получить коды аутентификации сервера
Чтобы получить доступ к API Google на внутреннем веб-сервере от имени текущего игрока, вам необходимо получить код аутентификации из клиентского приложения и передать его в ваше приложение веб-сервера. Затем код можно обменять на токен доступа для выполнения вызовов различных API. Информацию о рабочем процессе см. в разделе вход с помощью Google для веб-сайтов .
Чтобы получить код доступа на стороне сервера:
- Добавьте идентификатор веб-клиента для вашей игры в Play Console.
- В Google Play Console выберите свою игру.
- На странице конфигурации ( Grow Users > Play Games Services > Настройка и управление > Конфигурация ) нажмите Добавить учетные данные .
- На странице «Добавить учетные данные» выберите «Игровой сервер» .
- Создайте идентификатор клиента OAuth 2.0 .
- Запишите значение идентификатора клиента. Вам нужно будет предоставить это значение позже.
Добавьте идентификатор веб-клиента в Unity Hub.
- В 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 и выше)