Integracja pakietu SDK Gier Google Play na PC z Unity

W tym przewodniku znajdziesz szczegółowe instrukcje integrowania pakietu SDK Gry 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 Play Games PC Unity

Krok 2. Importowanie pakietu

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 korzystał z IL2CPP jako zaplecza skryptów i był przeznaczony dla odpowiedniej architektury.

  1. Utwórz profil kompilacji, w którym jako platformę wybierzesz Windows.

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

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

    Uwaga: platforma Gier Google Play na PC działa w środowisku 64-bitowym. Możesz skompilować grę w wersji 32-bitowej (x86) lub 64-bitowej (x64).

  3. Ustaw Scripting Backend (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 plik manifestu aplikacji

Zanim użyjesz pakietu SDK w grze, musisz powiązać plik wykonywalny gry z nazwą pakietu w Google Play, którą zadeklarowano 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, wybierz Plik > Kompiluj i uruchom lub kliknij 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 plik wykonywalny utworzonej gry.

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

Krok 5. Zainicjuj pakiet SDK

Zanim uzyskasz dostęp do jakichkolwiek funkcji, takich jak Płatności czy Integralność, musisz zainicjować pakiet SDK. Użyj PlayPcSdkFactory, aby utworzyć procedurę obsługi inicjowania i rozpocząć połączenie.

Utwórz nowy skrypt 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. Po uruchomieniu gry sprawdź w konsoli, czy wyświetla się komunikat „SDK Initialized Successfully!” (Pakiet SDK został zainicjowany).