В этом документе описывается, как перенести существующие игры с 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 Hub нажмите Assets > Import Package > Custom Package, чтобы импортировать загруженный файл
unitypackageв ресурсы вашего проекта. Убедитесь, что в качестве текущей платформы сборки выбрана Android .
In the main menu, click File > Build Settings .
Выберите Android и нажмите «Переключить платформу» .
В меню «Окно» > «Google Play Games» должен появиться новый пункт. Если его нет, обновите ресурсы, нажав «Ресурсы» > «Обновить» , а затем попробуйте снова установить платформу сборки.
В Unity Hub нажмите File > Build Settings > Player Settings > Other Settings .
В поле «Уровень целевого API» выберите версию.
В поле «Бэкенд скриптов» введите
IL2CPP.В поле «Целевые архитектуры» выберите значение.
Обратите внимание на имя пакета package_name . Эта информация пригодится вам позже.

The player settings in your Unity project.
Обновить код автоматического входа
Замените класс инициализации 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.
Successful sign-in .
Автоматический вход в систему работает. Пользователь должен быть авторизован в Play Games Services при запуске игры.
Отображается приветственное всплывающее окно.
Отображаются сообщения об успешном завершении операции. Выполните следующую команду в терминале:
adb logcat | grep com.google.android.
В следующем примере показано сообщение об успешном завершении операции:
[
$PlaylogGamesSignInAction$SignInPerformerSource@e1cdecc number=1 name=GAMES_SERVICE_BROKER>], returning true for shouldShowWelcomePopup. [CONTEXT service_id=1 ]
Обеспечьте согласованность компонентов пользовательского интерфейса .
Всплывающие окна, таблицы лидеров и достижения корректно и стабильно отображаются на экранах различных размеров и ориентаций в пользовательском интерфейсе Play Games Services.
Функция выхода из системы не отображается в пользовательском интерфейсе сервисов Play Games.
Убедитесь, что вы можете успешно получить идентификатор игрока, и, если применимо, серверные функции работают должным образом.
Если в игре используется аутентификация на стороне сервера, тщательно протестируйте поток
requestServerSideAccess. Убедитесь, что сервер получает код аутентификации и может обменять его на токен доступа. Протестируйте как успешные, так и неудачные сценарии на наличие сетевых ошибок и сценариев с недействительнымclient ID.
Если в вашей игре использовались какие-либо из следующих функций, протестируйте их, чтобы убедиться, что они работают так же, как и до миграции:
- Таблицы лидеров : Отправляйте результаты и просматривайте таблицы лидеров. Проверяйте правильность рейтинга и отображения имен игроков и результатов.
- Достижения : Разблокируйте достижения и убедитесь, что они правильно записаны и отображаются в пользовательском интерфейсе Play Games.
- Сохраненные игры : Если игра использует сохраненные игры, убедитесь, что сохранение и загрузка игрового прогресса работают безупречно. Это особенно важно проверить на разных устройствах и после обновления приложения.
Post migration tasks
После перехода на SDK для игр версии 2 выполните следующие шаги.
