В этом документе описывается, как перенести существующие игры из SDK games v1 в SDK games v2 . Плагин Play Games для Unity версии 10 и более ранних использует games v1 SDK.
Прежде чем начать
- Убедитесь, что вы уже настроили Play Console и установили Unity Hub.
Загрузите плагин Google Play Games для Unity.
Чтобы воспользоваться новейшими функциями игровых сервисов Play, загрузите и установите последнюю версию плагина. Загрузите его из репозитория 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 выберите версию.
В поле Серверная часть сценариев введите
IL2CPP
.В поле Целевые архитектуры выберите значение.
Обратите внимание на имя пакета package_name . Эту информацию можно использовать позже.
Обновить код автоматического входа
Замените класс инициализации 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 Games Services больше не требует наличия внутриигровой кнопки выхода.
Удалите код, показанный в следующем примере:
С#
// 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 ]
Обеспечьте согласованность компонентов пользовательского интерфейса .
Всплывающие окна, таблицы лидеров и достижения отображаются правильно и единообразно на экранах различных размеров и ориентаций в пользовательском интерфейсе игровых сервисов Play.
Опция выхода не отображается в пользовательском интерфейсе игровых сервисов Play.
Убедитесь, что вы можете успешно получить идентификатор игрока и, если применимо, возможности сервера работают должным образом.
Если игра использует аутентификацию на стороне сервера, тщательно протестируйте поток
requestServerSideAccess
. Убедитесь, что сервер получил код аутентификации и может обменять его на токен доступа. Проверьте сценарии успеха и неудачи на предмет сетевых ошибок и сценариев с недействительнымclient ID
.
Если в вашей игре использовалась какая-либо из следующих функций, проверьте их, чтобы убедиться, что они работают так же, как и до миграции:
- Таблицы лидеров : отправляйте результаты и просматривайте таблицы лидеров. Проверьте правильность рейтинга и отображения имен игроков и очков.
- Достижения : разблокируйте достижения и убедитесь, что они правильно записаны и отображаются в пользовательском интерфейсе Play Games.
- Сохраненные игры : если в игре используются сохраненные игры, убедитесь, что сохранение и загрузка игрового прогресса работает безупречно. Это особенно важно при тестировании на нескольких устройствах и после обновлений приложений.
Задачи после миграции
Выполните следующие шаги после перехода на SDK для игр v2.