Integracja pakietu SDK Gier Google Play na PC z Unity

projekt, który obejmuje etapy od pobrania pakietu SDK po jego inicjację i konfigurację kompilacji. keywords_public: Gry Google Play na PC, Unity, integracja pakietu SDK, natywna gra na PC, tworzenie gier, IL2CPP, plik manifestu, pakiet SDK Gier Google Play na PC w 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ł zaplecza skryptowego 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-bit (zalecane)
    • Intel 32-bit

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

  3. Ustaw Zaplecze skryptowe 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 w Google 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 musisz 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).

Krok 6. Włączanie automatycznego odtwarzania po zainstalowaniu natywnych gier na PC

Gry Google Play na PC (GGP) umożliwiają deweloperom włączenie funkcji „automatycznego odtwarzania”, która automatycznie uruchamia grę natychmiast po zakończeniu procesu instalacji. Ta funkcja zapewnia płynną obsługę, ponieważ przenosi gracza bezpośrednio do gry, w pełni uwierzytelnionego w ekosystemie GGP.

Jak to działa

Gdy włączysz tę funkcję, GGP przekaże token sesji GGP do procesu instalatora innej firmy (3P) za pomocą argumentów wiersza poleceń. Instalator jest wtedy odpowiedzialny za wyodrębnienie tego tokena i użycie go do uruchomienia pliku wykonywalnego gry w uwierzytelnionym kontekście.

Wymagania wstępne

Aby korzystać z tej funkcji, instalator innej firmy musi obsługiwać argumenty wiersza poleceń.

Etapy wdrażania

  1. Włącz automatyczne odtwarzanie w konfiguracji publikowania

    Aby włączyć tę funkcję, dodaj atrybut acceptsCommandLineArguments do elementu <installer> w pliku play_publishing_config.xml.

    Przykład zawartości pliku 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>
    
    • Atrybut: acceptsCommandLineArguments
    • Typ: Boolean
    • Domyślny: false
    • Działanie: gdy ustawisz wartość true, GGP dołączy token sesji do argumentów wiersza poleceń podczas wykonywania instalatora.
  2. Obsłuż token sesji w instalatorze

    Gdy instalator zostanie uruchomiony przez klienta GGP, otrzyma token sesji jako argument wiersza poleceń.

    • Format argumentu: --g_session_token=<TOKEN>

    Co musisz zrobić:

    • Wyodrębnianie: instalator musi przeanalizować argumenty wiersza poleceń, aby pobrać ciąg tokena.
    • Propagacja: jeśli proces instalacji obejmuje uruchomienie dodatkowego programu uruchamiającego lub procesu gry, instalator jest odpowiedzialny za bezpieczne przekazanie tokena sesji do końcowego procesu gry, który używa pakietu SDK.
    • Uruchamianie: użyj podanego tokena sesji, aby uruchomić plik wykonywalny gry. Dzięki temu gra będzie działać w uwierzytelnionym kontekście GGP. W przeciwnym razie funkcja InitializeSDK zakończy się niepowodzeniem i gracz będzie musiał ponownie uruchomić grę.
  3. Obsługa błędów i rezerwowe rozwiązania

  • Pobieranie tokena: jeśli z jakiegokolwiek powodu GGP nie może wygenerować ani przekazać tokena sesji (np. z powodu błędu generowania tokena), proces instalacji będzie kontynuowany. Instalator zostanie jednak uruchomiony bez argumentu --g_session_token.
  • Odporność: instalator powinien być zaprojektowany tak, aby obsługiwał sytuacje, w których token sesji jest nieobecny. W takich przypadkach instalator powinien kontynuować standardową instalację. Nie należy uruchamiać automatycznie gry, ponieważ funkcja InitializeSDK i tak zakończy się niepowodzeniem.
  • Błędy instalatora: odpowiadasz za odporność i obsługę błędów instalatora oraz sekwencji uruchamiania gry, którą inicjuje. GGP nie ma kontroli nad procesami, które występują w instalatorze po jego uruchomieniu.