Проект, охватывающий этапы от загрузки SDK до инициализации и настройки сборки. Keywords_public: Google Play Games PC, Unity, интеграция SDK, нативная разработка для ПК, разработка игр, IL2CPP, манифест, Play Games PC Unity SDK
В этом руководстве представлены пошаговые инструкции по интеграции SDK Google Play Games для ПК в ваш проект Unity.
Шаг 1: Загрузите SDK.
Загрузите последнюю версию пакета Unity, используя ссылку для скачивания.
Скачать: Play Games PC Unity SDK
Шаг 2: Импортируйте пакет
SDK распространяется в виде tar-архива, совместимого с Unity Package Manager (UPM). Для получения дополнительной информации см. раздел «Установка пакета UPM из локального tar-архива».
Шаг 3: Настройка параметров сборки
Для проверки корректной загрузки нативных библиотек необходимо настроить проект на использование скриптового бэкенда IL2CPP и указать целевую архитектуру.
Создайте профиль сборки , указав в качестве платформы Windows .
Выберите в настройках платформы Windows. Для архитектуры используйте следующие параметры:
- Intel 64-бит (рекомендуется)
- Intel 32-бит
Примечание: Платформа Google Play Games для ПК работает в 64-битной среде. Вы можете собрать свою игру как для 32-битной (x86), так и для 64-битной (x64) архитектуры.
Установите в качестве бэкенда для написания скриптов IL2CPP . Для получения дополнительной информации см. раздел «Создание проекта с использованием IL2CPP» .
- Установите уровень совместимости API на .NET Standard 2.0 (или .NET Framework).
Шаг 4: Создайте манифест приложения.
Прежде чем использовать SDK в своей игре, необходимо связать исполняемый файл игры с именем пакета Play, которое вы указали в Play Console . Для этого добавьте файл manifest.xml в ту же директорию, что и исполняемый файл игры.
Примечание: Этот шаг необходимо выполнить вручную.
- Чтобы скомпилировать исполняемый файл игры, выберите Файл > Сборка и запуск или нажмите
Ctrl+B. - Откройте текстовый редактор и создайте новый файл с именем
manifest.xml. Скопируйте и вставьте следующий XML-код в файл:
<?xml version="1.0" encoding="utf-8"?> <?Manifest version="1"> <?Application> <?PackageName>com.example.package<?/PackageName> <?/Application> <?/Manifest>
Сохраните файл как
manifest.xml.Переместите этот файл в ту же папку, что и исполняемый файл вашей игры.
Пример: Если ваша игра находится в
Builds/MyGame.exe, то файл манифеста должен находиться вBuilds/manifest.xml.
Примечание: Если вы хотите использовать PC SDK при разработке в редакторе Unity без необходимости цифровой подписи исполняемого файла игры или запуска её из Google Play Games, см. руководство по настройке режима разработчика .
Шаг 5: Инициализация SDK
Перед использованием любых функций, таких как выставление счетов или проверка целостности данных, необходимо инициализировать SDK. Используйте PlayPcSdkFactory для создания обработчика инициализации и начала подключения.
Создайте новый скрипт на C#, например, SdkInitialization.cs , и добавьте в него следующий код:
using UnityEngine; using System; using System.Threading.Tasks; // Import the SDK namespaces using PlayPcSdkManaged.Initialization; using PlayPcSdkManaged.Unity; public class GooglePlayPCSDKInit : MonoBehaviour { // Prevent double-initialization if this script is reloaded private static bool _isInitialized = false; private void Start() { // Use the "Safe Runner" pattern to fire the async method _ = InitializeSdkAsync(); } private async Task InitializeSdkAsync() { if (_isInitialized) { Debug.LogWarning("Google Play PC SDK is already initialized. Skipping."); return; } try { Debug.Log("Initializing Google Play PC SDK..."); // 1. Get the Unity-specific initialization handler from the factory var initHandler = PlayPcSdkFactory.InitializationHandler; // 2. Call InitializeAsync to start the connection var result = await GooglePlayInitialization.InitializeAsync(initHandler); // 3. Check the result if (result.IsOk) { _isInitialized = true; Debug.Log("<color=green>Google Play PC SDK Initialized Successfully!</color>"); // You can now create BillingClient or IntegrityClient instances } else { Debug.LogError($"<color=red>Initialization Failed!</color>"); Debug.LogError($"Error Code: {result.Code}"); Debug.LogError($"Message: {result.ErrorMessage}"); } } catch (Exception ex) { // Catch unexpected crashes or task failures Debug.LogError($"Exception during initialization: {ex.Message}"); Debug.LogException(ex); } } }
Прикрепите этот скрипт к игровому объекту в вашей первой сцене. При запуске игры проверьте консоль на наличие сообщения "SDK инициализирован успешно!".
Шаг 6 : Включение автозапуска при установке игр, изначально предназначенных для ПК.
Google Play Games на ПК (GPG) позволяет разработчикам включать функцию «автозапуска», которая автоматически запускает игру сразу после завершения процесса установки. Эта функция обеспечивает бесперебойную работу для пользователя, позволяя игроку сразу же погрузиться в игру, полностью авторизованному в рамках экосистемы GPG.
Как это работает
При включении этой функции GPG передаст токен сессии GPG процессу установки стороннего разработчика (3P) через аргументы командной строки. Затем ваш установщик будет отвечать за извлечение этого токена и его использование для запуска исполняемого файла игры в аутентифицированном контексте.
Предварительные требования
Для использования этой функции ваш сторонний установщик должен уметь обрабатывать аргументы командной строки.
Этапы реализации
Включите автоматическое воспроизведение в настройках публикации.
Чтобы включить эту функцию, добавьте атрибут
acceptsCommandLineArgumentsк элементу<installer>в файлеplay_publishing_config.xml.Пример содержимого файла
manifest.xml:<installer requiresElevation="true" acceptsCommandLineArguments="true"> <path>path/to/installer.exe</path> <installation-path-registry-location> <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\key</key-name> <value-name>InstallPath</value-name> </installation-path-registry-location> </installer>- Атрибут:
acceptsCommandLineArguments - Тип:
Boolean - По умолчанию:
false - Режим работы: Если установить значение true, GPG добавит токен сессии к аргументам командной строки при выполнении установщика.
- Атрибут:
Обработайте токен сессии в вашем установщике.
При запуске установщика клиентом GPG он получит токен сессии в качестве аргумента командной строки.
- Формат аргументов:
--g_session_token=<TOKEN>
Что вам необходимо сделать:
- Извлечение: Вашему установщику необходимо проанализировать аргументы командной строки, чтобы получить строку токена.
- Передача данных: Если процесс установки включает запуск дополнительного средства запуска или игрового процесса, ваш установщик отвечает за безопасную передачу токена сессии конечному игровому процессу, использующему SDK.
- Запуск: Используйте предоставленный токен сессии для запуска исполняемого файла игры. Это гарантирует запуск игры в аутентифицированном контексте GPG. В противном случае InitializeSDK завершится с ошибкой, и игроку потребуется перезапустить игру.
- Формат аргументов:
Обработка ошибок и резервные варианты
- Получение токена: Если по какой-либо причине GPG не может сгенерировать или передать токен сессии (например, ошибка генерации токена), процесс установки все равно продолжится. Однако ваш установщик будет запущен без аргумента --g_session_token.
- Надежность: Ваш установщик должен быть разработан таким образом, чтобы обрабатывать сценарии, в которых токен сессии отсутствует. В таких случаях установщик должен продолжить стандартную установку; не следует запускать автоматическую установку игры, так как InitializeSDK в любом случае завершится ошибкой.
- Ошибки установщика: Вы несете ответственность за надежность и обработку ошибок вашего установщика и последовательности запуска игры, которую он инициирует. GPG не контролирует процессы, происходящие внутри установщика после его запуска.