Integracja pakietu SDK Gier Google Play na PC z Unity

W tym przewodniku znajdziesz szczegółowe instrukcje integrowania pakietu SDK Gier Google Play na PC z projektem Unity.

Krok 1. Pobierz pakiet SDK

Pobierz najnowszą wersję pakietu Unity, korzystając z linku do pobierania.

Pobierz: pakiet SDK Gier Play na PCUnity

Krok 2. Zaimportuj pakiet

Pakiet SDK jest rozpowszechniany jako plik tar zgodny z menedżerem pakietów Unity (UPM). Więcej informacji znajdziesz w artykule Instalowanie pakietu UPM z lokalnego pliku tar.

Krok 3. Skonfiguruj ustawienia kompilacji

Aby sprawdzić, czy biblioteki natywne wczytują się prawidłowo, musisz skonfigurować projekt tak, aby używał backendu skryptów IL2CPP i był przeznaczony na odpowiednią architekturę.

  1. Utwórz profil kompilacji z Windowsem jako platformą.

  2. Wybierz ustawienia platformy jako Windows. W przypadku architektury użyj tych opcji:

    • Intel 64-bitowy (zalecane)
    • Intel 32-bitowy

    Uwaga: platforma Gier Google Play na PC działa w środowisku 64-bitowym. Możesz utworzyć kompilację gry jako 32-bitową (x86) lub 64-bitową (x64).

  3. Ustaw Backend skryptów na IL2CPP. Więcej informacji znajdziesz w artykule Tworzenie projektu za pomocą IL2CPP.

    • Ustaw Poziom zgodności interfejsu API na .NET Standard 2.0 (lub .NET Framework).

Krok 4. Utwórz manifest aplikacji

Zanim zaczniesz używać pakietu SDK w grze, musisz powiązać plik wykonywalny gry z nazwą pakietu Play, którą zgłosiłeś(-aś) w Konsoli Play. Aby to zrobić, dodaj plik manifest.xml w tym samym katalogu co plik wykonywalny gry.

Uwaga: jest to krok, który należy wykonać ręcznie.

  1. Aby utworzyć plik wykonywalny gry, kliknij Plik > Kompiluj i uruchom lub naciśnij Ctrl+B.
  2. Otwórz edytor tekstu i utwórz nowy plik o nazwie manifest.xml.
  3. Skopiuj i wklej do pliku ten kod XML:

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

  4. Zapisz plik jako manifest.xml.

  5. Przenieś ten plik do tego samego folderu co utworzony plik wykonywalny gry.

    Przykład: jeśli gra znajduje się w Builds/MyGame.exe, manifest musi znajdować się w Builds/manifest.xml.

Uwaga: jeśli chcesz używać pakietu SDK na PC podczas tworzenia w edytorze Unity bez konieczności podpisywania cyfrowo pliku wykonywalnego gry ani uruchamiania jej w Grach Google Play. Dodatkowe kroki konfiguracji manifestu znajdziesz w przewodniku po konfiguracji trybu dewelopera.

Krok 5. Zainicjuj pakiet SDK

Zanim uzyskasz dostęp do jakichkolwiek funkcji, takich jak płatności czy integralność, musisz zainicjować pakiet SDK. Aby utworzyć moduł obsługi inicjowania i rozpocząć połączenie, użyj PlayPcSdkFactory.

Utwórz nowy skrypt w języku C#, np. SdkInitialization.cs, i dodaj ten kod:

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);
        }
    }
}

Dołącz ten skrypt do GameObject w pierwszej scenie. Gdy uruchomisz grę, sprawdź w konsoli komunikat „SDK Initialized Successfully!” (Pakiet SDK został zainicjowany).