Cómo comenzar a usar el complemento de Google Play Juegos para Unity

En este tema, se describe cómo configurar tu proyecto de Unity a fin de usar el complemento de Google Play Juegos para Unity. Las tareas incluyen configurar el proyecto, elegir una plataforma social y configurar el acceso del jugador.

Antes de comenzar

Instalación de complementos

  1. Obtén el complemento mediante una de estas opciones:

  2. Busca el archivo unitypackage en el directorio current-build. Este archivo es el complemento. Por ejemplo, debería ser similar a lo siguiente:

      current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
    
  3. Abre el proyecto de juego en Unity.

  4. Para importar el archivo unitypackage a los elementos de tu proyecto, haz clic en el elemento de menú Recursos > Import Package > Custom Package.

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

    1. En el menú principal, haz clic en Archivo > 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.

Cómo obtener 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.

  1. Obtén los recursos de Android para tu juego.

    1. En Play Console, abre el proyecto de Servicios de juego de Play correspondiente a tu juego.

    2. Haz clic en la pestaña Logros y, luego, en Obtener recursos.

    3. En la ventana Export resources, haz clic en la pestaña Android.

    4. Selecciona y copia el contenido XML.

Cómo configurar tu proyecto de Unity

  1. Agrega los recursos de Android a tu proyecto de Unity.

    1. En Unity, haz clic en ** Window > Google Play Juegos > Setup… > Configuración de Android **.

    2. Completa los siguientes elementos en las ventanas de configuración:

    3. Directorio para guardar constantes: Es la carpeta para el archivo de constantes.

    4. Nombre de clase de constantes: Es el nombre de la clase C# que se creará, incluido el espacio de nombres.

    5. Definición de recursos: Pega aquí los datos de recursos de Android de Play Console.

    6. ID de cliente web: Es el ID de cliente de la app web vinculada. Solo se requiere 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.

    7. 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.

Configuración de Android

Configura la ruta de acceso a la instalación del SDK de Android en Unity. Se encuentra en el menú de preferencias, en la sección Herramientas externas.

Si quieres configurar tu juego de Unity para que se ejecute con Google Play Juegos en Android, primero abre el SDK Manager de Android y verifica que hayas descargado los siguientes paquetes. Es posible que el nombre de los componentes sea diferente: depende de si usas el SDK Manager de Android desde Android Studio o el SDK Manager independiente. - Servicios de Google Play - Biblioteca de compatibilidad de Android - Repositorio de Maven local para bibliotecas de compatibilidad (también conocido como repositorio de compatibilidad de Android) - Repositorio de Google - Android 6.0 (nivel de API 23) (esto no afecta la versión mínima del SDK)

A continuación, configura el nombre del paquete de tu juego. Para ello, haz clic en Archivo > Build Settings, selecciona la plataforma Android y haz clic en Player Settings a fin de mostrar la ventana de Player Settings de Unity. En esa ventana, busca la configuración Bundle Identifier en Other Settings. Ingresa el nombre del paquete allí (por ejemplo, com.example.mi.juego.increíble).

Para acceder a los Servicios de juego de Play, debes firmar tu archivo APK. Asegúrate de firmarlo con el certificado correcto, es decir, el que corresponda al certificado SHA1, la huella digital que ingresaste en Play Console durante la configuración.

Luego, haz clic en el elemento del menú Window |Google Play Games|Setup - Android setup. Se mostrará la pantalla de configuración de Android.

Ingresa el nombre de la clase Constants. Este es el nombre de la clase completamente calificada que se actualizará (o creará) y que contiene los ID de los recursos del juego. El formato del nombre es <namespace>.<classname>. Por ejemplo: AwesomeGame.GPGSIds.

Pega los datos de definición del recurso. Estos son los datos XML de Google Play Console que contienen los ID de recursos y los ID de aplicación para Android.

Para ver estos datos en Google Play Console, haz clic en "Obtener recursos" en cualquiera de las páginas de recursos (p. ej., Logros o Tablas de clasificación) y, luego, en Android.

Después de pegar los datos en el área de texto, haga clic en el botón Configuración.

Nota: Si usas una aplicación web o un servidor de backend con tu juego, puedes vincular la aplicación web al juego a fin de habilitar la obtención del token de ID del jugador o su dirección de correo electrónico. Para ello, vincula una aplicación web al juego en Google Play Console e ingresa el ID de cliente de la aplicación web en el diálogo de configuración.

Instrucciones adicionales sobre la compilación para Android en Windows

Si usas Windows, debes asegurarte de que Unity pueda acceder a la instalación del SDK de Java. Para ello, haz lo siguiente:

  1. Establece la variable de entorno JAVA_HOME en la ruta de acceso de la instalación del SDK de Java (por ejemplo, C:\Program Files\Java\jdk1.7.0_45).
  2. Agrega la carpeta bin del SDK de Java a tu variable de entorno PATH (por ejemplo, C:\Program Files\Java\jdk1.7.0_45\bin).
  3. Reinicia.

Cómo editar variables de entorno: En Windows 2000/XP/Vista/7, haz clic con el botón derecho en Mi equipo y Propiedades. Luego, ve aAdvanced System Properties (o a Propiedades del sistema y, luego, haz clic en la pestaña Configuración avanzada). Por último, haz clic en Variables de entorno. En Windows 8, presiona la Tecla Windows + W y busca variables de entorno. Si deseas obtener más información, consulta la documentación de tu versión de Windows.

Cómo ejecutar el proyecto

Si trabajas con el ejemplo de Smoketest, deberías poder compilar y ejecutar el proyecto en este momento. Cuando se inicie Smoketest, verás el intento de acceso automático.

Para compilar y ejecutar en Android, haz clic en File > Build Settings, selecciona la plataforma Android, Switch to Platform y, luego, Build and Run.

Cómo elegir una plataforma social

El complemento de Google Play Juegos 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 Google Play Juegos 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, Google Play Juegos se convierte en tu implementación de plataforma social predeterminada, lo que significa que el complemento de Google Play Juegos llevará a cabo llamadas estáticas a los métodos en Social y Social.Active. Este es el comportamiento deseado para 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 Google Play Juegos sin anularla. Para ello, haz lo siguiente:

  1. No llames a PlayGamesPlatform.Activate.
  2. Si Xyz es el nombre de un método al que deseas 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 Google Play Juegos. 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ó Google Play Juegos 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ó.

    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 Google Play Juegos 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.

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 Acceso con Google para sitios 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 la consola de Play Juegos.

  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