Retiro de los Servicios de juego de Play

Permite que los usuarios accedan a tu juego sin problemas mientras sigues usando tu propio sistema de cuentas. Con las APIs de Recall de los Servicios de juego de Play, puedes vincular cuentas en el juego con una cuenta de los Servicios de juego de Google Play. Luego, cuando un usuario juega en diferentes dispositivos (o en el mismo después de reinstalar el juego), consultas la cuenta vinculada en el juego y optimizas el flujo de acceso.

Si realizaste la integración con las APIs de Recall de Android, estas APIs de Recall te resultarán familiares. Los títulos para PC pueden reutilizar cualquier integración del servidor con Recall de los Servicios de juego de Play, ya que son las mismas en Android y PC.

Espacio de nombres: PlayPcSdkManaged.Recall

Clase de cliente: RecallClient

Requisitos previos

Agrega el ID de tu proyecto de los Servicios de juego de Play en el manifiesto

Después de completar la configuración de los Servicios de juego de Play en Play Console, tu juego ahora tiene un ID de proyecto de los Servicios de juego de Play asociado. Con este ID de proyecto, que se puede encontrar en la página Configuración de los Servicios de juego de Play en Play Console, actualiza el archivo manifest.xml de tu juego.

Ejemplo del contenido de manifest.xml:

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

Nota: Si deseas usar el SDK para PC mientras desarrollas en Unity Editor 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 de desarrollador.

Crea el cliente

Usa siempre la fábrica para crear un RecallClient. Esto garantiza que las devoluciones de llamada seguras para Unity se registren automáticamente.

using UnityEngine;
using System;
using System.Threading.Tasks;
// Required SDK Namespaces
using PlayPcSdkManaged.Recall;
using PlayPcSdkManaged.Unity;

public class RecallManager : MonoBehaviour
{
    private RecallClient _recallClient;

    public void SetupRecall()
    {
        try
        {
            // Creates the client with the required UnityRecallCallbacksHandler
            _recallClient = PlayPcSdkFactory.CreateRecallClient();
            Debug.Log("Recall Client created successfully.");
        }
        catch (Exception ex)
        {
            Debug.LogError($"Failed to create Recall Client: {ex.Message}");
        }
    }

    private void OnDestroy()
    {
        // Always dispose of the client to clean up native C++ resources
        _recallClient?.Dispose();
    }
}

Solicita acceso a Recall

Cuando tu juego controla un flujo de acceso, por ejemplo, cuando agrega una cuenta en el juego , solicita acceso a Recall con RequestRecallAccessAsync.

Esta llamada muestra un ID de sesión que usa tu backend para realizar llamadas del servidor a Google para vincular y desvincular tus cuentas en el juego con un usuario de los Servicios de juego de Play.

public async Task RequestRecallAccessAsync()
{
    try
    {
        Debug.Log("Requesting Recall access...");

        // Async call to retrieve the session ID
        var result = await _recallClient.RequestRecallAccessAsync();

        if (result.IsOk)
        {
            // On success, access the RecallSessionId
            var sessionId = result.Value.RecallSessionId;
            Debug.Log($"Recall Access Granted! Session ID: {sessionId}");

            // Pass 'sessionId' to your backend server to process account linking
        }
        else
        {
            // Handle expected API errors (e.g., Error)
            Debug.LogError($"Request Failed: {result.Code} - {result.ErrorMessage}");
        }
    }
    catch (Exception ex)
    {
        Debug.LogException(ex);
    }
}

Procesa el ID de sesión de Recall

Una vez que tu juego tenga el ID de sesión de Recall y lo haya pasado a tu servidor de juegos de backend, usa las APIs de REST del servidor de Play Juegos para hacer lo siguiente:

Para obtener una guía más detallada sobre la integración del servidor, consulta la documentación que explica cómo usar la API de Recall en tu servidor de juegos.