Copyright (c) 2014 Google Inc. Todos los derechos reservados.
El complemento de Google Play Games para Unity® es un proyecto de código abierto cuyo objetivo es proporcionar un complemento que permita a los desarrolladores de juegos integrarse con la API de Google Play Games desde un juego escrito en Unity®. Sin embargo, este proyecto no está respaldado ni supervisado de ninguna manera por Unity Technologies.
Unity® es una marca comercial de Unity Technologies.
iOS es una marca comercial de Apple, Inc.
Descargue el paquete desde la página de lanzamiento de Github.
El complemento Google Play Games para Unity le permite acceder a la API de Google Play Games a través de la interfaz social de Unity. El complemento brinda soporte para las siguientes funciones de la API de Google Play Games:
iniciar sesión
amigos
desbloquear/revelar/incrementar logros
publicar puntuación en la tabla de clasificación
guardar en la nube lectura/escritura
mostrar la interfaz de usuario integrada de logros/clasificaciones
eventos
conexiones cercanas
AVISO : esta versión del complemento ya no es compatible con iOS. Los servicios de juegos de Google Play para iOS están obsoletos y no es probable que funcionen como se esperaba. No utilice los servicios de juegos de Google Play para iOS en aplicaciones nuevas. Consulte la publicación del blog sobre el anuncio de obsolescencia para obtener más detalles.
Características:
Fácil configuración de proyectos orientada a GUI (integrada en Unity GUI)
no es necesario anular/personalizar la actividad del jugador
no es necesario anular/personalizar AndroidManifest.xml
Para obtener instrucciones sobre el uso del complemento, consulte esta guía para desarrolladores.
Para ver una aplicación de muestra que demuestra cómo utilizar Google Play Games, consulte el proyecto SmokeTest;
Si ya ha integrado su proyecto con una versión anterior del complemento y desea actualizar a una nueva versión, consulte las instrucciones de actualización.
Para acceder a las API de Google en un servidor web backend en nombre del reproductor actual, debe obtener un código de autenticación de la aplicación cliente y pasarlo a su aplicación de servidor web. Luego, este código se puede intercambiar por un token de acceso para realizar llamadas a las distintas API. Para obtener más detalles sobre este flujo, consulte: Inicio de sesión de Google para sitios web.
Para obtener el código de autenticación del servidor:
Configure el ID del cliente web de la aplicación web vinculada a su juego en Play Game Console.
Llame PlayGamesClientConfiguration.Builder.RequestServerAuthCode(false)
al crear la configuración.
Llame PlayGamesPlatform.Instance.GetServerAuthCode()
una vez que el jugador esté autenticado.
Pase este código a su aplicación de servidor.
PlayGamesPlatform.Instance.RequestServerSideAccess(/* forceRefreshToken= */ false,code -> { // enviar código al servidor});
Es posible reducir el tamaño del complemento Unity de Play Games Services eliminando el código de las funciones de Play Games Services que su juego no utiliza mediante Proguard. Proguard eliminará el código del complemento de Play Games Unity para las funciones que no se utilizan en su juego, de modo que su juego se envíe solo con el código que se necesita y minimice el impacto en el tamaño del uso de los servicios de Play Games.
Además, es posible reducir el tamaño de todo el proyecto de Unity utilizando Managed Code Stripping de Unity, que comprimirá todo el proyecto. Esto se puede utilizar junto con Proguard.
Vaya a File > Build Settings > Player Settings
y haga clic en la sección Publishing Settings
. Elija Proguard
para Minify > Release
. Luego, habilite User Proguard File
. Si desea que el complemento también esté protegido para aplicaciones de depuración, puede elegir Proguard
para Minify > Debug
.
Copie el contenido de la configuración de proguard en Assets/Plugins/Android/proguard-user.txt
.
Cuando llamas a PlayGamesPlatform.Activate
, Google Play Games se convierte en tu implementación de plataforma social predeterminada, lo que significa que las llamadas estáticas a métodos en Social
y Social.Active
las realizará el complemento Google Play Games. Este es el comportamiento deseado para la mayoría de los juegos que utilizan el complemento.
Sin embargo, si por alguna razón desea mantener accesible la implementación predeterminada (por ejemplo, para usarla para enviar logros y tablas de clasificación a una plataforma social diferente), puede usar el complemento Google Play Games sin anular el predeterminado. Para hacer esto:
No llames PlayGamesPlatform.Activate
Si Xyz
es el nombre de un método que desea llamar en la clase Social
, no llame a Social.Xyz
. En su lugar, llame a PlayGamesPlatform.Instance.Xyz
No utilice Social.Active
cuando interactúe con Google Play Games. En su lugar, utilice PlayGamesPlatform.Instance
.
De esa manera, puedes incluso enviar puntuaciones y logros simultáneamente a dos o más plataformas sociales:
// Enviar logro a la plataforma social predeterminada originalSocial.ReportProgress("MyAchievementIdHere", 100.0f, callback);// Enviar logro a Google PlayPlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, callback);
Esta sección enumera las personas que han contribuido a este proyecto escribiendo código, mejorando la documentación o corrigiendo errores.
Dgizusse por descubrir que configurar JAVA_HOME es necesario en Windows.
antonlicht por corregir un error con el tipo de parámetro showErrorDialog en la biblioteca de soporte.
pR0P para solucionar un problema por el cual OnAchievementsLoaded no aceptaba un código de resultado OPERATION_DEFERRED como exitoso.
friikyeu por ayudar a depurar un problema que provocaba que las llamadas API se pusieran en cola en lugar de ejecutarse incluso cuando estaban conectadas.