Настройте Google Play Games for Unity и войдите в систему.

Этот документ поможет вам настроить проект Unity для использования плагина Google Play Games для Unity. Вы узнаете, как установить плагин и настроить свой проект Unity. В документе также описывается, как проверить службу входа.

Прежде чем начать

Ознакомьтесь с требованиями к программному обеспечению . Настройте Play Console и установите Unity Hub.

Установка плагина

Чтобы загрузить и установить плагин Google Play Games для Unity, выполните следующие действия в Unity Hub:

  1. Загрузите репозиторий GitHub .

  2. В каталоге current-build найдите файл unitypackage . Этот файл представляет плагин. Например, это должно выглядеть следующим образом:

      current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
    

Настройка проекта Unity

Чтобы настроить проект Unity в настройках плеера, выполните следующие действия:

  1. Откройте свой игровой проект.

  2. В Unity Hub нажмите «Активы» > «Импортировать пакет» > «Пользовательский пакет», чтобы импортировать файл unitypackage в ресурсы вашего проекта.

  3. Убедитесь, что для вашей текущей платформы сборки установлено значение Android .

    1. В главном меню нажмите Файл > Настройки сборки .

    2. Выберите Android и нажмите «Переключить платформу» .

    3. Должен появиться новый пункт меню «Окно» > «Google Play Игры» . Если это не так, обновите ресурсы, нажав «Ресурсы» > «Обновить» , а затем попробуйте снова настроить платформу сборки.

  4. В Unity Hub нажмите «Файл» > «Настройки сборки» > «Настройки проигрывателя» > «Другие настройки» .

  5. В поле Уровень целевого API выберите версию.

  6. В поле Серверная часть сценариев введите IL2CPP .

  7. В поле Целевые архитектуры выберите значение.

  8. Обратите внимание на имя пакета package_name . Эту информацию можно использовать позже.

Настройки плеера в вашем проекте Unity
Настройки плеера в вашем проекте Unity.

Создать новое хранилище ключей

Для проверки ваших учетных данных вам понадобится ключ. Выполните следующие действия:

  1. В Unity Hub нажмите Файл > Настройки сборки > Настройки проигрывателя .
  2. В разделе «Настройки публикации» нажмите «Диспетчер хранилища ключей» .
    1. В окне диспетчера хранилища ключей нажмите «Хранилище ключей» > «Создать новый» > «Где угодно» .
    2. Выберите папку и укажите имя хранилища ключей.
    3. В поле Пароль введите пароль и подтвердите его.
    4. Нажмите Добавить ключ .

Обратите внимание на имя папки. Вы можете использовать это имя для создания учетных данных в Google Cloud.

Скопируйте ресурсы Android из Play Console.

Каждое достижение, таблица лидеров и событие, которое вы создаете в Play Console, включает в себя ресурс Android, который вы используете при настройке проекта Unity .

Чтобы получить ресурсы Android для вашей игры, выполните следующие действия:

  1. В консоли Google Play откройте игру.

  2. На странице Игровые сервисы Play — Конфигурация ( «Развитие» > «Игровые сервисы Play» > «Настройка и управление» > «Конфигурация» ) нажмите «Получить ресурсы» .

  3. В окне «Ресурсы» перейдите на вкладку Android (XML) .

  4. Выберите и скопируйте содержимое ресурсов Android ( AndroidManifest.xml ).

Добавьте ресурсы Android в свой проект Unity.

Добавьте в свой проект Unity следующие ресурсы Android:

  1. В 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.

  2. В 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, не переопределяя плагин по умолчанию. Для этого:

  1. Не вызывайте PlayGamesPlatform.Activate
  2. Если Xyz — это имя метода, который вам нужно вызвать в классе Social , не вызывайте Social.Xyz . Вместо этого вызовите PlayGamesPlatform.Instance.Xyz
  3. Не используйте 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, выполните следующие действия:

  1. В Unity Hub нажмите Файл > Настройки сборки .
  2. Выберите «Создать пакет приложений» (Google Play) .

    Дополнительные сведения см. в разделе Справочник по настройкам сборки Android .

  3. Нажмите «Создать» .

  4. Загрузите файл AAB из Unity Hub.

Создайте выпуск для внутреннего тестирования

Чтобы создать выпуск для внутреннего тестирования и добавить тестировщиков в Play Console, выполните следующие действия:

  1. В консоли Google Play выберите игру.
  2. Перейдите на страницу «Тестирование и выпуск» ( Тестирование > Внутреннее тестирование ).
  3. Нажмите «Загрузить» и выберите файл AAB.
  4. В поле Сведения о выпуске введите имя.
  5. Нажмите «Далее» и просмотрите сведения о выпуске.
  6. Нажмите «Сохранить и опубликовать» .
  7. На вкладке «Тестеры» нажмите «Создать список адресов электронной почты», чтобы добавить до 100 тестировщиков.

    Дополнительную информацию см. в разделе Внутреннее тестирование: управление до 100 тестировщиками .

  8. В поле «URL-адрес обратной связи» или «адрес электронной почты» введите URL-адрес обратной связи или адрес электронной почты, чтобы оставить отзыв.

  9. Нажмите Сохранить .

Проверьте свои учетные данные для подписи приложения

  1. В консоли Google Play выберите игру.
  2. Перейдите на страницу «Тестирование и выпуск» ( Настройка > Подписание приложения ).
  3. Проверьте свои учетные данные для подписи приложения.

Сборка и запуск проекта

На этом этапе вы можете создать и запустить игровой проект. Когда игра запустится, вы увидите попытку автоматического входа.

Вам понадобится физическое устройство на базе Android с включенной отладкой по USB или эмулятор, на котором можно запустить разработанный проект.

Получить коды аутентификации сервера

Чтобы получить доступ к API Google на внутреннем веб-сервере от имени текущего игрока, вам необходимо получить код аутентификации из клиентского приложения и передать его в приложение вашего веб-сервера. Затем код можно обменять на токен доступа для выполнения вызовов различных API. Информацию о рабочем процессе см. в разделе Вход с помощью Google в Интернете .

Чтобы получить код доступа на стороне сервера:

  1. Настройте идентификатор веб-клиента веб-приложения, связанного с вашей игрой, в Play Console.

  2. Вызовите PlayGamesPlatform.Instance.RequestServerSideAccess после аутентификации игрока, чтобы получить код доступа на стороне сервера.

  3. Передайте этот код вашему серверному приложению.

  PlayGamesPlatform.Instance.RequestServerSideAccess(
    /* forceRefreshToken= */ false,
    code -> {
      // send code to server
    });

Настройте и добавьте функции

,

Этот документ поможет вам настроить проект Unity для использования плагина Google Play Games для Unity. Вы узнаете, как установить плагин и настроить свой проект Unity. В документе также описывается, как проверить службу входа.

Прежде чем начать

Ознакомьтесь с требованиями к программному обеспечению . Настройте Play Console и установите Unity Hub.

Установка плагина

Чтобы загрузить и установить плагин Google Play Games для Unity, выполните следующие действия в Unity Hub:

  1. Загрузите репозиторий GitHub .

  2. В каталоге current-build найдите файл unitypackage . Этот файл представляет плагин. Например, это должно выглядеть следующим образом:

      current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
    

Настройка проекта Unity

Чтобы настроить проект Unity в настройках плеера, выполните следующие действия:

  1. Откройте свой игровой проект.

  2. В Unity Hub нажмите «Активы» > «Импортировать пакет» > «Пользовательский пакет», чтобы импортировать файл unitypackage в ресурсы вашего проекта.

  3. Убедитесь, что для вашей текущей платформы сборки установлено значение Android .

    1. В главном меню нажмите Файл > Настройки сборки .

    2. Выберите Android и нажмите «Переключить платформу» .

    3. Должен появиться новый пункт меню «Окно» > «Google Play Игры» . Если это не так, обновите ресурсы, нажав «Ресурсы» > «Обновить» , а затем попробуйте снова настроить платформу сборки.

  4. В Unity Hub нажмите «Файл» > «Настройки сборки» > «Настройки проигрывателя» > «Другие настройки» .

  5. В поле Уровень целевого API выберите версию.

  6. В поле Серверная часть сценариев введите IL2CPP .

  7. В поле Целевые архитектуры выберите значение.

  8. Обратите внимание на имя пакета package_name . Эту информацию можно использовать позже.

Настройки плеера в вашем проекте Unity
Настройки плеера в вашем проекте Unity.

Создать новое хранилище ключей

Для проверки ваших учетных данных вам понадобится ключ. Выполните следующие действия:

  1. В Unity Hub нажмите Файл > Настройки сборки > Настройки проигрывателя .
  2. В разделе «Настройки публикации» нажмите «Диспетчер хранилища ключей» .
    1. В окне диспетчера хранилища ключей нажмите «Хранилище ключей» > «Создать новый» > «Где угодно» .
    2. Выберите папку и укажите имя хранилища ключей.
    3. В поле Пароль введите пароль и подтвердите его.
    4. Нажмите Добавить ключ .

Обратите внимание на имя папки. Вы можете использовать это имя для создания учетных данных в Google Cloud.

Скопируйте ресурсы Android из Play Console.

Каждое достижение, таблица лидеров и событие, которое вы создаете в Play Console, включает в себя ресурс Android, который вы используете при настройке проекта Unity .

Чтобы получить ресурсы Android для вашей игры, выполните следующие действия:

  1. В консоли Google Play откройте игру.

  2. На странице Игровые сервисы Play — Конфигурация ( «Развитие» > «Игровые сервисы Play» > «Настройка и управление» > «Конфигурация» ) нажмите «Получить ресурсы» .

  3. В окне «Ресурсы» перейдите на вкладку Android (XML) .

  4. Выберите и скопируйте содержимое ресурсов Android ( AndroidManifest.xml ).

Добавьте ресурсы Android в свой проект Unity.

Добавьте в свой проект Unity следующие ресурсы Android:

  1. В 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.

  2. В 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, не переопределяя плагин по умолчанию. Для этого:

  1. Не вызывайте PlayGamesPlatform.Activate
  2. Если Xyz — это имя метода, который вам нужно вызвать в классе Social , не вызывайте Social.Xyz . Вместо этого вызовите PlayGamesPlatform.Instance.Xyz
  3. Не используйте 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, выполните следующие действия:

  1. В Unity Hub нажмите Файл > Настройки сборки .
  2. Выберите «Создать пакет приложений» (Google Play) .

    Дополнительные сведения см. в разделе Справочник по настройкам сборки Android .

  3. Нажмите «Создать» .

  4. Загрузите файл AAB из Unity Hub.

Создайте выпуск для внутреннего тестирования

Чтобы создать выпуск для внутреннего тестирования и добавить тестировщиков в Play Console, выполните следующие действия:

  1. В консоли Google Play выберите игру.
  2. Перейдите на страницу «Тестирование и выпуск» ( Тестирование > Внутреннее тестирование ).
  3. Нажмите «Загрузить» и выберите файл AAB.
  4. В поле Сведения о выпуске введите имя.
  5. Нажмите «Далее» и просмотрите сведения о выпуске.
  6. Нажмите «Сохранить и опубликовать» .
  7. На вкладке «Тестеры» нажмите «Создать список адресов электронной почты», чтобы добавить до 100 тестировщиков.

    Дополнительную информацию см. в разделе Внутреннее тестирование: управление до 100 тестировщиками .

  8. В поле «URL-адрес обратной связи» или «адрес электронной почты» введите URL-адрес обратной связи или адрес электронной почты, чтобы оставить отзыв.

  9. Нажмите Сохранить .

Проверьте свои учетные данные для подписи приложения

  1. В консоли Google Play выберите игру.
  2. Перейдите на страницу «Тестирование и выпуск» ( Настройка > Подписание приложений ).
  3. Проверьте свои учетные данные для подписи приложения.

Сборка и запуск проекта

На этом этапе вы можете создать и запустить игровой проект. Когда игра запустится, вы увидите попытку автоматического входа.

Вам понадобится физическое устройство на базе Android с включенной отладкой по USB или эмулятор, на котором можно запустить разработанный проект.

Получить коды аутентификации сервера

Чтобы получить доступ к API Google на внутреннем веб-сервере от имени текущего игрока, вам необходимо получить код аутентификации из клиентского приложения и передать его в приложение вашего веб-сервера. Затем код можно обменять на токен доступа для выполнения вызовов различных API. Информацию о рабочем процессе см. в разделе Вход с помощью Google в Интернете .

Чтобы получить код доступа на стороне сервера:

  1. Настройте идентификатор веб-клиента веб-приложения, связанного с вашей игрой, в Play Console.

  2. Вызовите PlayGamesPlatform.Instance.RequestServerSideAccess после аутентификации игрока, чтобы получить код доступа на стороне сервера.

  3. Передайте этот код вашему серверному приложению.

  PlayGamesPlatform.Instance.RequestServerSideAccess(
    /* forceRefreshToken= */ false,
    code -> {
      // send code to server
    });

Настройте и добавьте функции