Configura Google Play Juegos para Unity y accede

En este documento, se te guía para configurar tu proyecto de Unity y usar el complemento de Google Play Juegos para Unity. Aprenderás a instalar el complemento y a configurar tu proyecto de Unity. En el documento, también se explica cómo verificar el servicio de acceso.

Antes de comenzar

Revisa los requisitos de software. Configura Play Console y, luego, instala Unity Hub.

Instalación de complementos

Para descargar e instalar el complemento de Google Play Juegos para Unity, sigue estos pasos en Unity Hub:

  1. Descarga el repositorio de GitHub.

  2. En el directorio current-build, busca el archivo unitypackage. Este archivo representa el complemento. Por ejemplo, debería parecerse a lo siguiente:

      current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
    

Configura el proyecto de Unity

Para configurar un proyecto de Unity en la configuración del jugador, sigue estos pasos:

  1. Abre tu proyecto de juego.

  2. En Unity Hub, haz clic en Assets > Import Package > Custom Package para importar el archivo unitypackage a los recursos de tu proyecto.

  3. Asegúrate de que tu plataforma de compilación actual esté configurada como Android.

    1. En el menú principal, haz clic en File > Build Settings.

    2. Selecciona Android y haz clic en Switch Platform.

    3. Deberías ver un nuevo elemento de menú en Window > Google Play Juegos. Si no existe, haz clic en Recursos > Actualizar para actualizar los elementos y, luego, intenta configurar la plataforma de compilación nuevamente.

  4. En Unity Hub, haz clic en File > Build Settings > Player Settings > Other Settings.

  5. En el cuadro Target API level, selecciona una versión.

  6. En el cuadro Backend de secuencias de comandos, ingresa IL2CPP.

  7. En el cuadro Target architectures, selecciona un valor.

  8. Anota el nombre del paquete package_name.Puedes usar esta información más adelante.

La configuración del jugador en tu proyecto de Unity
La configuración del reproductor en tu proyecto de Unity.

Crea un almacén de claves nuevo

Para validar tus credenciales, necesitas una clave. Sigue estos pasos:

  1. En Unity Hub, haz clic en File > Build settings > Player settings.
  2. En la sección Configuración de publicación, haz clic en Administrador de almacenes de claves.
    1. En la ventana Keystore manager, haz clic en Keystore > Create new > Anywhere.
    2. Selecciona una carpeta y proporciona un nombre para el almacén de claves.
    3. En el cuadro Contraseña, ingresa una contraseña y confírmala.
    4. Haz clic en Agregar clave.

Anota el nombre de la carpeta. Puedes usar este nombre para crear una credencial en Google Cloud.

Cómo copiar los recursos de Android desde Play Console

Cada logro, tabla de clasificación y evento que creas en Play Console incluye un recurso de Android que puedes usar cuando configuras tu proyecto de Unity.

Para obtener los recursos de Android para tu juego, sigue estos pasos:

  1. En Google Play Console, abre el juego.

  2. En la página Servicios de juego de Play - Configuración (Crecimiento > Servicios de juego de Play > Configuración y administración > Configuración), haz clic en Obtener recursos.

  3. En la ventana Resources, haz clic en la pestaña Android(XML).

  4. Selecciona y copia el contenido de los recursos de Android (AndroidManifest.xml).

Agrega los recursos de Android a tu proyecto de Unity

Agrega los siguientes recursos de Android a tu proyecto de Unity:

  1. En Unity Hub, haz clic en Window > Google Play Games > Setup > Android Setup.

    • En el campo Directorio para guardar constantes, ingresa el nombre de la carpeta del archivo de constantes.
    • En el campo Nombre de clase de constantes, ingresa el nombre de la clase C# que se creará, incluido el espacio de nombres.

      Por ejemplo, si la clase C# es id.cs y está presente en Recursos > myproject > secuencias de comandos > id.cs. El nombre de la clase de constantes puede ser myproject.scripts.id.

    • En el campo Definición de recursos, pega los datos de recursos de Android (archivo AndroidManifest.xml) que copiaste de Google Play Console.

    • Opcional: En el campo ID de cliente, ingresa el ID de cliente de la app web vinculada.

      Para obtener el ID de cliente de tu juego desde Google Cloud, consulta Cómo crear IDs de cliente.

      Esto solo es necesario si tienes un backend basado en la Web para tu juego y necesitas que el servidor de backend intercambie un código de autenticación de servidor por un token de acceso, o bien si necesitas un token de ID para que el jugador realice otras llamadas a API que no sean del juego.

    • Presiona Configuración. De este modo, se configura el juego con el ID de cliente y se genera una clase C# que contiene constantes para cada uno de tus recursos de Android.

  2. En Unity Hub, haz clic en Window > Google Play Games > Setup > Nearby Connections Setup.

    • En el campo ID de servicio de conexión cercana, ingresa package_name.

      Usa el mismo package_name que usaste para configurar el proyecto de Unity.

    • Presiona Configuración.

Cómo elegir una plataforma social

El complemento de los Servicios de juego de Google Play implementa la interfaz social de Unity para brindar compatibilidad con los juegos que ya usan esa interfaz cuando se integra en otras plataformas. Sin embargo, algunas funciones son exclusivas de Play Juegos y se ofrecen como extensiones de la interfaz social estándar que proporciona Unity.

Se puede acceder a las llamadas a las API estándar a través del objeto Social.Active, que es una referencia a una interfaz ISocialPlatform. Se puede acceder a las extensiones no estándar de los Servicios de juego de Google Play si se transmite el objeto Social.Active a la clase PlayGamesPlatform, donde se encuentran los métodos adicionales disponibles.

Usa el complemento sin anular la plataforma social predeterminada

Cuando llamas a PlayGamesPlatform.Activate, los Servicios de juego de Google Play se convierten en tu implementación de plataforma social predeterminada, lo que significa que el complemento de los Servicios de juego de Google Play llevará a cabo llamadas estáticas a los métodos en Social y Social.Active. Este es el comportamiento de la mayoría de los juegos que usan el complemento.

Sin embargo, si por algún motivo deseas mantener accesible la implementación predeterminada (por ejemplo, para usarla en el envío de logros y tablas de clasificación a otra plataforma social), puedes usar el complemento de los Servicios de juego de Google Play sin anularla. Para hacer lo siguiente:

  1. No llames a PlayGamesPlatform.Activate
  2. Si Xyz es el nombre de un método al que debes llamar en la clase Social, no llames a Social.Xyz. En su lugar, llama a PlayGamesPlatform.Instance.Xyz.
  3. No uses Social.Active cuando interactúes con los Servicios de juego de Google Play. En su lugar, usa PlayGamesPlatform.Instance.

De esa manera, podrás incluso enviar puntuaciones y logros a dos o más plataformas sociales a la vez:

    // Submit achievement to original default social platform
    Social.ReportProgress("MyAchievementIdHere", 100.0f, callback);

    // Submit achievement to Google Play
    PlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, callback);

Cómo verificar el servicio de acceso

Cuando se abre el juego, se intenta automáticamente establecer una conexión con los Servicios de juego de Play mediante el servicio de acceso. Si la conexión se realiza correctamente, el juego mostrará un mensaje de acceso y estará listo para usar el complemento de Google Play Juegos para Unity.

Si un usuario nunca usó los Servicios de juego de Google Play en su dispositivo, se lo dirigirá automáticamente a la pantalla de configuración única para crear una cuenta de Play Juegos.

En el método Start de la secuencia de comandos, escucha el resultado del intento de acceso automático, recupera el estado de autenticación y, luego, inhabilita las funciones de los Servicios de juego de Play si el usuario no accedió.

Si la versión del complemento de Unity es anterior a v11, no podrás usar la función de acceso.

    using GooglePlayGames;

    public void Start() {
      PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication);
    }

    internal void ProcessAuthentication(SignInStatus status) {
      if (status == SignInStatus.Success) {
        // Continue with Play Games Services
      } else {
        // Disable your integration with Play Games Services or show a login button
        // to ask users to sign-in. Clicking it should call
        // PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
      }
    }

El código de resultado es de tipo enum, que puedes usar para identificar el motivo de una falla de acceso.

Si prefieres usar la plataforma social de Unity, también puedes emplear el siguiente código:

  using GooglePlayGames;

  public void Start() {
    PlayGamesPlatform.Activate();
    Social.localUser.Authenticate(ProcessAuthentication);
  }

No podrás realizar llamadas a la API de los Servicios de juego de Google Play hasta que obtengas un valor de retorno correcto de Authenticate. Como resultado, recomendamos que los juegos muestren una pantalla en espera hasta que se llame a la devolución de llamada para garantizar que los usuarios no puedan comenzar a jugar hasta que se complete la autenticación.

Usa la firma de apps de Play

Google administra y protege la clave de firma de tu app con la firma de apps de Play. Puedes usar la firma de apps de Play para firmar la distribución optimizada de archivos Android App Bundle(AAB). La firma de apps de Play almacena tu clave de firma de la app en la infraestructura segura de Google. Para usar la firma de apps de Play, primero debes crear y descargar un archivo AAB desde Unity Hub. Luego, puedes subir el archivo AAB a Play Console y crear una versión de pruebas internas.

Crea un archivo AAB

Para crear un archivo AAB en Unity Hub, sigue estos pasos:

  1. En Unity Hub, haz clic en File > Build settings.
  2. Selecciona Build App Bundle ( Google Play ).

    Para obtener más información, consulta la referencia de la configuración de compilación de Android.

  3. Haz clic en Build.

  4. Descarga el archivo AAB desde Unity Hub.

Crea una versión de prueba interna

Para crear una versión de prueba interna y agregar verificadores en Play Console, sigue estos pasos:

  1. En Google Play Console, selecciona un juego.
  2. Navega a la página Probar y lanzar (Pruebas > Pruebas internas).
  3. Haz clic en Subir y selecciona el archivo AAB.
  4. En el campo Detalles de la versión, ingresa un nombre.
  5. Haz clic en Siguiente y revisa los detalles del lanzamiento.
  6. Haz clic en Guardar y publicar.
  7. En la pestaña Verificadores, haz clic en Crear lista de direcciones de correo electrónico para agregar hasta 100 verificadores.

    Para obtener más información, consulta Prueba interna: Administra un máximo de 100 verificadores.

  8. En URL o dirección de correo electrónico para comentarios, ingresa una URL de comentarios o una dirección de correo electrónico para enviarlos.

  9. Haz clic en Guardar.

Verifica tus credenciales de firma de apps

  1. En Google Play Console, selecciona un juego.
  2. Navega a la página Prueba y versión (Configuración > Firma de apps).
  3. Verifica tus credenciales de firma de apps.

Compila y ejecuta el proyecto

En este punto, puedes compilar y ejecutar el proyecto del juego. Cuando se inicie el juego, verás el intento de acceso automático.

Necesitas un dispositivo físico con Android y la depuración por USB habilitada, o un emulador que pueda ejecutar el proyecto desarrollado.

Recupera los códigos de autenticación del servidor

Para acceder a las API de Google en un servidor web de backend en nombre del jugador actual, debes obtener un código de autenticación de la aplicación cliente y pasarlo a tu aplicación de servidor web. Luego, el código se podrá intercambiar por un token de acceso para realizar llamadas a varias API. Si deseas obtener información sobre el flujo de trabajo, consulta Acceder con Google para la Web.

A fin de obtener el código de acceso del servidor, sigue estos pasos:

  1. Configura el ID de cliente web de la aplicación web vinculada a tu juego en Play Console.

  2. Llama a PlayGamesPlatform.Instance.RequestServerSideAccess una vez que se autentique el jugador para obtener el código de acceso del servidor.

  3. Pasa este código a la aplicación de tu servidor.

  PlayGamesPlatform.Instance.RequestServerSideAccess(
    /* forceRefreshToken= */ false,
    code -> {
      // send code to server
    });

Cómo configurar y agregar funciones