Cómo integrar el SDK de Google Play Juegos para PC con Unity

En esta guía, se proporcionan instrucciones paso a paso para integrar el SDK de Google Play Juegos para PC en tu proyecto de Unity.

Paso 1: Descarga el SDK

Descarga la versión más reciente del paquete de Unity con el vínculo de descarga.

Descargar: SDK de Play Juegos para PCUnity

Paso 2: Importa el paquete

El SDK se distribuye como un archivo tar compatible con Unity Package Manager (UPM). Para obtener más información, consulta Cómo instalar un paquete de UPM desde un archivo tar local

Paso 3: Configura los parámetros de compilación

Para verificar que las bibliotecas nativas se carguen correctamente, debes configurar tu proyecto para que use el backend de secuencias de comandos IL2CPP y segmentar la arquitectura correcta.

  1. Crea un perfil de compilación con Windows como plataforma.

  2. Selecciona la configuración de la plataforma como Windows. Para la arquitectura, usa las siguientes opciones:

    • Intel de 64 bits (recomendado)
    • Intel de 32 bits

    Nota: La plataforma de Google Play Juegos para PC se ejecuta en un entorno de 64 bits. Puedes compilar tu juego como de 32 bits (x86) o de 64 bits (x64).

  3. Establece Scripting Backend en IL2CPP. Para obtener más información, consulta Cómo compilar un proyecto con IL2CPP.

    • Establece Api Compatibility Level en .NET Standard 2.0 (o .NET Framework).

Paso 4: Crea el manifiesto de la aplicación

Antes de poder usar el SDK en tu juego, debes asociar el ejecutable del juego con el nombre del paquete de Play que reclamaste en Play Console. Para ello, agrega un archivo manifest.xml en el mismo directorio que el ejecutable del juego.

Nota: Este es un paso manual que se debe realizar.

  1. Para compilar el archivo ejecutable del juego, selecciona File > Build and Run o haz clic en Ctrl+B.
  2. Abre un editor de texto y crea un archivo nuevo llamado manifest.xml.
  3. Copia y pega el siguiente código XML en el archivo:

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

  4. Guarda el archivo como manifest.xml.

  5. Mueve este archivo a la misma carpeta que el archivo ejecutable del juego compilado.

    Ejemplo: Si tu juego está en Builds/MyGame.exe, el manifiesto debe estar en Builds/manifest.xml.

Nota: Si quieres usar el SDK para PC mientras desarrollas en el Editor de Unity sin necesidad de firmar digitalmente el ejecutable del juego ni iniciarlo desde Google Play Juegos. Para obtener pasos adicionales de configuración del manifiesto, consulta la guía de configuración del modo para desarrolladores.

Paso 5: Inicializa el SDK

Debes inicializar el SDK antes de acceder a cualquier función, como Facturación o Integrity. Usa PlayPcSdkFactory para crear el controlador de inicialización y comenzar la conexión.

Crea una secuencia de comandos nueva en C#, por ejemplo, SdkInitialization.cs, y agrega el siguiente código:

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

Adjunta esta secuencia de comandos a un GameObject en tu primera escena. Cuando ejecutes el juego, consulta la consola para ver el mensaje "SDK Initialized Successfully!".