Интеграция Google Play Games PC SDK с Unity

В этом руководстве представлены пошаговые инструкции по интеграции SDK Google Play Games для ПК в ваш проект Unity.

Шаг 1: Загрузите SDK.

Загрузите последнюю версию пакета Unity, используя ссылку для скачивания.

Скачать: Play Games PC Unity SDK

Шаг 2: Импортируйте пакет

SDK распространяется в виде tar-архива, совместимого с Unity Package Manager (UPM). Для получения дополнительной информации см. раздел «Установка пакета UPM из локального tar-архива».

Шаг 3: Настройка параметров сборки

Для проверки корректной загрузки нативных библиотек необходимо настроить проект на использование скриптового бэкенда IL2CPP и указать целевую архитектуру.

  1. Создайте профиль сборки, указав в качестве платформы Windows .

  2. Выберите в настройках платформы Windows. Для архитектуры используйте следующие параметры:

    • Intel 64-бит (рекомендуется)
    • Intel 32-бит

    Примечание: Платформа Google Play Games для ПК работает в 64-битной среде. Вы можете собрать свою игру как для 32-битной (x86), так и для 64-битной (x64) архитектуры.

  3. Установите в качестве бэкенда для написания скриптов IL2CPP . Для получения дополнительной информации см. раздел «Создание проекта с использованием IL2CPP» .

    • Установите уровень совместимости API на .NET Standard 2.0 (или .NET Framework).

Шаг 4: Создайте манифест приложения.

Прежде чем использовать SDK в своей игре, необходимо связать исполняемый файл игры с именем пакета Play, которое вы указали в Play Console . Для этого добавьте файл manifest.xml в ту же директорию, что и исполняемый файл игры.

Примечание: Этот шаг необходимо выполнить вручную.

  1. Чтобы скомпилировать исполняемый файл игры, выберите Файл > Сборка и запуск или нажмите Ctrl+B .
  2. Откройте текстовый редактор и создайте новый файл с именем manifest.xml .
  3. Скопируйте и вставьте следующий XML-код в файл:

    <?xml version="1.0" encoding="utf-8"?>
    <?Manifest version="1">
       <?Application>
         <?PackageName>com.example.package<?/PackageName>
       <?/Application>
    <?/Manifest>

  4. Сохраните файл как manifest.xml .

  5. Переместите этот файл в ту же папку, что и исполняемый файл вашей игры.

    Пример: Если ваша игра находится в Builds/MyGame.exe , то файл манифеста должен находиться в Builds/manifest.xml .

Шаг 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 инициализирован успешно!".