Переход на 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, загрузите и установите последнюю версию плагина. Скачать его можно из репозитория GitHub .

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

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

Assets/GooglePlayGames

Assets/GeneratedLocalRepo/GooglePlayGames

Assets/Plugins/Android/GooglePlayGamesManifest.androidlib

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

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

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

  1. Откройте свой игровой проект.
  2. В Unity Hub нажмите Assets > Import Package > Custom Package, чтобы импортировать загруженный файл unitypackage в ресурсы вашего проекта.
  3. Убедитесь, что в качестве текущей платформы сборки выбрана Android .

    1. In the main menu, click File > Build Settings .

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

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

  4. В Unity Hub нажмите File > Build Settings > Player Settings > Other Settings .

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

  6. В поле «Бэкенд скриптов» введите IL2CPP .

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

  8. Обратите внимание на имя пакета package_name . Эта информация пригодится вам позже.

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

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

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

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

C#

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

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

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

Retrieve server authentication codes

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

Remove sign-out code

Удалите код для выхода из системы. Сервисы Play Games больше не требуют кнопки выхода из игры.

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

C#

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

Test your game

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

The following is a list of common tests to run.

  1. Successful sign-in .

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

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

      Sample welcome popup.
      Sample welcome popup (click to enlarge).

    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. Всплывающие окна, таблицы лидеров и достижения корректно и стабильно отображаются на экранах различных размеров и ориентаций в пользовательском интерфейсе Play Games Services.

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

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

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

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

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

Post migration tasks

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

  1. Use Play App Signing

  2. Create an AAB file

  3. Create an internal testing release

  4. Verify your App signing credentials