В этом документе описывается, как перенести существующие игры из 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 Hub нажмите «Активы» > «Импорт пакета» > «Пользовательский пакет» , чтобы импортировать загруженный файл
unitypackage
в активы вашего проекта. Убедитесь, что вашей текущей платформой сборки является Android .
В главном меню выберите Файл > Параметры сборки .
Выберите Android и нажмите «Сменить платформу» .
В меню «Окно» > «Google Play Игры» должен появиться новый пункт. Если его нет, обновите ресурсы, нажав «Ресурсы» > «Обновить» , а затем попробуйте снова настроить платформу сборки.
В Unity Hub выберите Файл > Параметры сборки > Настройки проигрывателя > Другие настройки .
В поле Целевой уровень API выберите версию.
В поле Scripting backend введите
IL2CPP
.В поле Целевые архитектуры выберите значение.
Запишите имя пакета package_name . Вы можете использовать эту информацию позже.
Настройки проигрывателя в вашем проекте 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();
Протестируйте свою игру
Убедитесь, что ваша игра функционирует так, как задумано, проведя тестирование. Тестирование зависит от особенностей вашей игры.
Ниже приведен список распространенных тестов, которые следует выполнить.
Успешный вход .
Автоматический вход работает. Пользователь должен быть авторизован в игровых сервисах Play перед запуском игры.
Отобразится всплывающее окно приветствия.
Пример всплывающего приветственного окна (кликните для увеличения). Отобразятся сообщения об успешном завершении. Выполните следующую команду в терминале:
adb logcat | grep com.google.android.
Успешное сообщение журнала показано в следующем примере:
[
$PlaylogGamesSignInAction$SignInPerformerSource@e1cdecc number=1 name=GAMES_SERVICE_BROKER>], returning true for shouldShowWelcomePopup. [CONTEXT service_id=1 ]
Обеспечить согласованность компонентов пользовательского интерфейса .
Всплывающие окна, таблицы лидеров и достижения отображаются корректно и единообразно на экранах различных размеров и ориентаций в пользовательском интерфейсе (UI) игровых сервисов Play.
Функция выхода из системы не отображается в пользовательском интерфейсе сервисов Play Games.
Убедитесь, что вы можете успешно получить идентификатор игрока и, если применимо, возможности сервера работают так, как ожидается.
Если в игре используется аутентификация на стороне сервера, тщательно протестируйте поток
requestServerSideAccess
. Убедитесь, что сервер получает код аутентификации и может обменять его на токен доступа. Проверьте как успешные, так и неудачные сценарии на наличие сетевых ошибок и недействительногоclient ID
.
Если ваша игра использует какие-либо из следующих функций, протестируйте их, чтобы убедиться, что они работают так же, как и до миграции:
- Таблицы лидеров : отправляйте результаты и просматривайте таблицы лидеров. Проверьте правильность рейтинга и отображения имён игроков и результатов.
- Достижения : разблокируйте достижения и убедитесь, что они правильно записаны и отображаются в пользовательском интерфейсе Play Games.
- Сохранённые игры : Если в игре используются сохранённые игры, убедитесь, что сохранение и загрузка игрового процесса работают без сбоев. Это особенно важно для тестирования на нескольких устройствах и после обновлений приложения.
Задачи после миграции
После перехода на games v2 SDK выполните следующие шаги.