Переход на Play Games Services v2 (Unity)

В этом документе описывается, как перенести существующие игры из SDK games v1 в SDK games v2 . Плагин Play Games для Unity версии 10 и более ранних использует SDK games v1.

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

  • Убедитесь, что вы уже настроили Play Console и установили Unity Hub.

Загрузите плагин Google Play Games для Unity

Чтобы воспользоваться новейшими функциями Play Games Services, скачайте и установите последнюю версию плагина из репозитория gitHub .

Удалить старый плагин

В Unity Hub удалите следующие папки или файлы.

Assets/GooglePlayGames

Assets/GeneratedLocalRepo/GooglePlayGames

Assets/Plugins/Android/GooglePlayGamesManifest.androidlib

Assets/Plugins/Android
Удалите выделенные папки в вашем проекте Unity.
Удалите выделенные папки в вашем проекте Unity (кликните для увеличения).

Импортируйте новый плагин в свой проект Unity.

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

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

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

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

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

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

  5. В поле Целевой уровень API выберите версию.

  6. В поле Scripting backend введите IL2CPP .

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

  8. Запишите имя пакета package_name . Вы можете использовать эту информацию позже.

    Настройки проигрывателя в вашем проекте Unity
    Настройки проигрывателя в вашем проекте Unity.
  9. Скопируйте ресурсы Android из Play Console

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

Обновить код автоматического входа

Замените класс инициализации PlayGamesClientConfiguration на класс PlayGamesPlatform.Instance.Authenticate() . Инициализация и активация PlayGamesPlatform не требуются. Вызов PlayGamesPlatform.Instance.Authenticate() возвращает результат автоматического входа.

С#

В Unity Hub найдите файлы с классом PlayGamesClientConfiguration .

using GooglePlayGames;
using GooglePlayGames.BasicApi;
using UnityEngine.SocialPlatforms;

public void Start() {
    PlayGamesClientConfiguration config =
        new PlayGamesClientConfiguration.Builder()
    // Enables saving game progress
    .EnableSavedGames()
    // Requests the email address of the player be available
    // will bring up a prompt for consent
    .RequestEmail()
    // Requests a server auth code be generated so it can be passed to an
    // associated backend server application and exchanged for an OAuth token
    .RequestServerAuthCode(false)
    // Requests an ID token be generated. This OAuth token can be used to
    // identify the player to other services such as Firebase.
    .RequestIdToken()
    .Build();

    PlayGamesPlatform.InitializeInstance(config);
    // recommended for debugging:
    PlayGamesPlatform.DebugLogEnabled = true;
    // Activate the Google Play Games platform
    PlayGamesPlatform.Activate();
}

И обновите его до этого:

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).
    }
}

Выберите социальную платформу

Чтобы выбрать социальную платформу, см. раздел Выбор социальной платформы .

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

Чтобы получить коды доступа на стороне сервера, см. раздел получение кодов аутентификации сервера .

Удалить код выхода

Удалите код выхода. Игровые сервисы Play больше не требуют внутриигровой кнопки выхода.

Удалите код, показанный в следующем примере:

С#

// sign out
PlayGamesPlatform.Instance.SignOut();

Протестируйте свою игру

Убедитесь, что ваша игра функционирует так, как задумано, проведя тестирование. Тестирование зависит от особенностей вашей игры.

Ниже приведен список распространенных тестов, которые следует выполнить.

  1. Успешный вход .

    1. Автоматический вход работает. Пользователь должен быть авторизован в игровых сервисах Play перед запуском игры.

    2. Отобразится всплывающее окно приветствия.

      Пример приветственного всплывающего окна.
      Пример всплывающего приветственного окна (кликните для увеличения).

    3. Отобразятся сообщения об успешном завершении. Выполните следующую команду в терминале:

      adb logcat | grep com.google.android.

      Успешное сообщение журнала показано в следующем примере:

      [$PlaylogGamesSignInAction$SignInPerformerSource@e1cdecc
      number=1 name=GAMES_SERVICE_BROKER>], returning true for shouldShowWelcomePopup.
      [CONTEXT service_id=1 ]
  2. Обеспечить согласованность компонентов пользовательского интерфейса .

    1. Всплывающие окна, таблицы лидеров и достижения отображаются корректно и единообразно на экранах различных размеров и ориентаций в пользовательском интерфейсе (UI) игровых сервисов Play.

    2. Функция выхода из системы не отображается в пользовательском интерфейсе сервисов Play Games.

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

    4. Если в игре используется аутентификация на стороне сервера, тщательно протестируйте поток requestServerSideAccess . Убедитесь, что сервер получает код аутентификации и может обменять его на токен доступа. Проверьте как успешные, так и неудачные сценарии на наличие сетевых ошибок и недействительного client ID .

Если ваша игра использует какие-либо из следующих функций, протестируйте их, чтобы убедиться, что они работают так же, как и до миграции:

  • Таблицы лидеров : отправляйте результаты и просматривайте таблицы лидеров. Проверьте правильность рейтинга и отображения имён игроков и результатов.
  • Достижения : разблокируйте достижения и убедитесь, что они правильно записаны и отображаются в пользовательском интерфейсе Play Games.
  • Сохранённые игры : Если в игре используются сохранённые игры, убедитесь, что сохранение и загрузка игрового процесса работают без сбоев. Это особенно важно для тестирования на нескольких устройствах и после обновлений приложения.

Задачи после миграции

После перехода на games v2 SDK выполните следующие шаги.

  1. Используйте функцию подписи в приложении Play

  2. Создать AAB-файл

  3. Создайте релиз для внутреннего тестирования

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