Этот документ поможет вам настроить проект 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 откройте игру.
На странице Игровые сервисы Play — Конфигурация ( «Развитие» > «Игровые сервисы Play» > «Настройка и управление» > «Конфигурация» ) нажмите «Получить ресурсы» .
В окне «Ресурсы» перейдите на вкладку Android (XML) .
Выберите и скопируйте содержимое ресурсов Android (
AndroidManifest.xml
).
Добавьте ресурсы Android в свой проект Unity.
Добавьте в свой проект Unity следующие ресурсы Android:
В Unity Hub нажмите «Окно» > «Google Play Игры» > «Настройка» > «Настройка Android» .
- В поле Каталог для сохранения констант введите имя папки для файла констант.
В поле Имя класса констант введите имя создаваемого класса C#, включая пространство имен.
Например, если класс C# —
id.cs
и присутствует в разделе «Активы» > «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 можно получить, приведя объект Social.Active к классу PlayGamesPlatform , где доступны дополнительные методы.
Используйте плагин, не переопределяя социальную платформу по умолчанию.
Когда вы вызываете PlayGamesPlatform.Activate
, игровые сервисы Google Play становятся вашей реализацией социальной платформы по умолчанию. Это означает, что статические вызовы методов в Social
и Social.Active
будут выполняться плагином Google Play Games Services. Это поведение большинства игр, использующих плагин.
Однако, если по какой-то причине вы хотите сохранить доступной реализацию по умолчанию (например, чтобы использовать ее для отправки достижений и таблиц лидеров на другую социальную платформу), вы можете использовать плагин Google Play Games Services, не переопределяя плагин по умолчанию. Для этого:
- Не вызывайте
PlayGamesPlatform.Activate
- Если
Xyz
— это имя метода, который вам нужно вызвать в классеSocial
, не вызывайтеSocial.Xyz
. Вместо этого вызовитеPlayGamesPlatform.Instance.Xyz
- Не используйте
Social.Active
при взаимодействии с игровыми сервисами Google Play. Вместо этого используйте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 с использованием службы входа . Если подключение установлено успешно, ваша игра отобразит приглашение на вход и будет готова к использованию плагина Google Play Games Services для Unity.
Если пользователь никогда не использовал игровые сервисы Google Play на своем устройстве, он автоматически перейдет через экран однократной настройки для создания учетной записи Play Games.
В методе Start
вашего скрипта прослушайте результат попытки автоматического входа, получите статус аутентификации и отключите функции игровых сервисов Play, если пользователь не вошел в систему.
Если версия плагина 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. Вы можете использовать подпись приложений Google Play для подписи оптимизированного распространения файлов Android APP Bundle (AAB). Служба подписи приложений Play хранит ваш ключ подписи приложения в защищенной инфраструктуре Google. Чтобы использовать подпись приложений Play, вам необходимо сначала создать и загрузить файл 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.
Вызовите
PlayGamesPlatform.Instance.RequestServerSideAccess
после аутентификации игрока, чтобы получить код доступа на стороне сервера.Передайте этот код вашему серверному приложению.
PlayGamesPlatform.Instance.RequestServerSideAccess(
/* forceRefreshToken= */ false,
code -> {
// send code to server
});
Настройте и добавьте функции
Включите функции игровых сервисов Play.
Добавьте функции в свою игру с помощью API игровых сервисов Play:
Вызов API для Unity (поддерживается только для плагина Unity версии v11 и выше)
Этот документ поможет вам настроить проект 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 откройте игру.
На странице Игровые сервисы Play — Конфигурация ( «Развитие» > «Игровые сервисы Play» > «Настройка и управление» > «Конфигурация» ) нажмите «Получить ресурсы» .
В окне «Ресурсы» перейдите на вкладку Android (XML) .
Выберите и скопируйте содержимое ресурсов Android (
AndroidManifest.xml
).
Добавьте ресурсы Android в свой проект Unity.
Добавьте в свой проект Unity следующие ресурсы Android:
В Unity Hub нажмите «Окно» > «Google Play Игры» > «Настройка» > «Настройка Android» .
- В поле Каталог для сохранения констант введите имя папки для файла констант.
В поле Имя класса констант введите имя создаваемого класса C#, включая пространство имен.
Например, если класс C# —
id.cs
и присутствует в разделе «Активы» > «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 можно получить, приведя объект Social.Active к классу PlayGamesPlatform , где доступны дополнительные методы.
Используйте плагин, не переопределяя социальную платформу по умолчанию.
Когда вы вызываете PlayGamesPlatform.Activate
, игровые сервисы Google Play становятся вашей реализацией социальной платформы по умолчанию. Это означает, что статические вызовы методов в Social
и Social.Active
будут выполняться плагином Google Play Games Services. Это поведение большинства игр, использующих плагин.
Однако, если по какой-то причине вы хотите сохранить доступной реализацию по умолчанию (например, чтобы использовать ее для отправки достижений и таблиц лидеров на другую социальную платформу), вы можете использовать плагин Google Play Games Services, не переопределяя плагин по умолчанию. Для этого:
- Не вызывайте
PlayGamesPlatform.Activate
- Если
Xyz
— это имя метода, который вам нужно вызвать в классеSocial
, не вызывайтеSocial.Xyz
. Вместо этого вызовитеPlayGamesPlatform.Instance.Xyz
- Не используйте
Social.Active
при взаимодействии с игровыми сервисами Google Play. Вместо этого используйте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 с использованием службы входа . Если подключение установлено успешно, ваша игра отобразит приглашение на вход и будет готова к использованию плагина Google Play Games Services для Unity.
Если пользователь никогда не использовал игровые сервисы Google Play на своем устройстве, он автоматически перейдет через экран однократной настройки для создания учетной записи Play Games.
В методе Start
вашего скрипта прослушайте результат попытки автоматического входа, получите статус аутентификации и отключите функции игровых сервисов Play, если пользователь не вошел в систему.
Если версия плагина 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. Вы можете использовать подпись приложений Google Play для подписи оптимизированного распространения файлов Android APP Bundle (AAB). Служба подписи приложений Play хранит ваш ключ подписи приложения в защищенной инфраструктуре Google. Чтобы использовать подпись приложений Play, вам необходимо сначала создать и загрузить файл 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.
Вызовите
PlayGamesPlatform.Instance.RequestServerSideAccess
после аутентификации игрока, чтобы получить код доступа на стороне сервера.Передайте этот код вашему серверному приложению.
PlayGamesPlatform.Instance.RequestServerSideAccess(
/* forceRefreshToken= */ false,
code -> {
// send code to server
});
Настройте и добавьте функции
Включите функции игровых сервисов Play.
Добавьте функции в свою игру с помощью API игровых сервисов Play:
Вызов API для Unity (поддерживается только для плагина Unity версии v11 и выше)