Integrare l'SDK Google Play Games per PC con Unity

Questa guida fornisce istruzioni passo passo per integrare l'SDK Google Play Giochi per PC nel tuo progetto Unity.

Passaggio 1: scarica l'SDK

Scarica l'ultima versione del pacchetto Unity utilizzando il link di download.

Download: Play Games PC Unity SDK

Passaggio 2: importa il pacchetto

L'SDK viene distribuito come file tar compatibile con Unity Package Manager (UPM). Per ulteriori informazioni, vedi Installare un pacchetto UPM da un file tar locale.

Passaggio 3: configura le impostazioni di build

Per verificare che le librerie native vengano caricate correttamente, devi configurare il progetto in modo che utilizzi il backend di scripting IL2CPP e che abbia come target l'architettura corretta.

  1. Crea un profilo di build con Windows come piattaforma.

  2. Seleziona le impostazioni della piattaforma come Windows. Per l'architettura, utilizza le opzioni:

    • Intel a 64 bit (consigliato)
    • Intel a 32 bit

    Nota: la piattaforma Google Play Giochi su PC viene eseguita in un ambiente a 64 bit. Puoi creare il tuo gioco a 32 bit (x86) o 64 bit (x64).

  3. Imposta Scripting Backend su IL2CPP. Per saperne di più, consulta la pagina Creare un progetto con IL2CPP.

    • Imposta Livello di compatibilità API su .NET Standard 2.0 (o .NET Framework).

Passaggio 4: crea il manifest dell'applicazione

Prima di poter utilizzare l'SDK nel tuo gioco, devi associare l'eseguibile del gioco al nome del pacchetto Play che hai rivendicato in Play Console. Per farlo, aggiungi un file manifest.xml nella stessa directory dell'eseguibile del gioco.

Nota:questo è un passaggio manuale che deve essere eseguito.

  1. Per creare il file eseguibile del gioco, seleziona File > Build and Run o fai clic su Ctrl+B.
  2. Apri un editor di testo e crea un nuovo file denominato manifest.xml.
  3. Copia e incolla il seguente codice XML nel file:

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

  4. Salva il file come manifest.xml.

  5. Sposta questo file nella stessa cartella del file eseguibile del gioco creato.

    Esempio: se il gioco si trova in Builds/MyGame.exe, il manifest deve trovarsi in Builds/manifest.xml.

Passaggio 5: inizializza l'SDK

Devi inizializzare l'SDK prima di accedere a qualsiasi funzionalità, come la fatturazione o l'integrità. Utilizza PlayPcSdkFactory per creare il gestore di inizializzazione e avviare la connessione.

Crea un nuovo script C#, ad esempio SdkInitialization.cs, e aggiungi il codice seguente:

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

Collega questo script a un GameObject nella prima scena. Quando esegui il gioco, controlla la console per visualizzare il messaggio "SDK inizializzato correttamente".