GPGIdenti<\/em> con todos los identificadores de los recursos<\/strong>.<\/p>\n2-Los scripts.<\/h2>\n
No os vais a creer lo sencillo que va a ser esto. Tenemos que hacer dos cosas. Mantener las puntuaciones y mostrar el tablero de puntuaciones cuando lo pida el usuario.<\/p>\n
2.1-Enviar puntuaciones al tablero de puntuaciones.<\/h3>\n
Tenemos que decidir cuando hacerlo. Si se trata de un juego que continuamente estas obteniendo puntos tendremos que encontrar un equilibrio, no podemos estar enviando las puntuaciones de forma casi on-line a Google. Una buena soluci\u00f3n podr\u00eda ser hacerlo al pasar un nivel. En mi caso, he usado un juego en el que la puntuaci\u00f3n se actualiza bastante poco, unas dos o tres veces por nivel, as\u00ed que en cada modificaci\u00f3n hago la llamada para actualizar el tablero de puntuaciones.<\/p>\n
\/\/\u00a0public\u00a0function\u00a0to\u00a0add\u00a0points\u00a0and\u00a0update\u00a0the\u00a0gui\u00a0and\u00a0highscore\u00a0player\u00a0prefs\u00a0accordingly<\/span><\/span><\/p>\n using<\/span>\u00a0<\/span>GooglePlayGames<\/span>;<\/span><\/span><\/p>\n….
\n\u00a0\u00a0\u00a0\u00a0<\/span>public<\/span>\u00a0<\/span>void<\/span>\u00a0<\/span>AddPoints<\/span>(<\/span>int<\/span>\u00a0<\/span>amount<\/span>)<\/span>
\n\u00a0\u00a0\u00a0\u00a0<\/span>{<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\/\/\u00a0increase\u00a0score<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>score<\/span>+=<\/span>amount<\/span>;<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\/\/\u00a0Submit\u00a0leaderboard\u00a0scores,\u00a0if\u00a0authenticated<\/span>
\n#<\/span>if<\/span>\u00a0<\/span>UNITY_ANDROID<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>if<\/span>\u00a0<\/span>(<\/span>PlayGamesPlatform<\/span>.<\/span>Instance<\/span>.<\/span>localUser<\/span>.<\/span>authenticated<\/span>)<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>{<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\/\/\u00a0Note:\u00a0make\u00a0sure\u00a0to\u00a0add\u00a0‘using\u00a0GooglePlayGames’<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>PlayGamesPlatform<\/span>.<\/span>Instance<\/span>.<\/span>ReportScore<\/span>(<\/span>score<\/span>,<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>GPGidenti<\/span>.<\/span>leaderboard_giskard_in_the_dark_master_of_universe<\/span>,<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>(<\/span>bool<\/span>\u00a0<\/span>success<\/span>)<\/span>\u00a0<\/span>=><\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>{<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>Debug<\/span>.<\/span>Log<\/span>(<\/span>“(Giskard)\u00a0Leaderboard\u00a0update\u00a0success:\u00a0“<\/span>\u00a0<\/span>+<\/span>\u00a0<\/span>success<\/span>)<\/span>;<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>}<\/span>)<\/span>;<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>}<\/span>
\n#<\/span>endif<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\/\/\u00a0update\u00a0UI<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>UIScore<\/span>.<\/span>text<\/span>\u00a0<\/span>=<\/span>\u00a0<\/span>“Score:\u00a0“<\/span>+<\/span>score<\/span>.<\/span>ToString<\/span>(<\/span>)<\/span>;<\/span><\/span><\/p>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\/\/\u00a0if\u00a0score>highscore\u00a0then\u00a0update\u00a0the\u00a0highscore\u00a0UI\u00a0too<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>if<\/span>\u00a0<\/span>(<\/span>score<\/span>><\/span>highscore<\/span>)<\/span>\u00a0<\/span>{<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>highscore<\/span>\u00a0<\/span>=<\/span>\u00a0<\/span>score<\/span>;<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>UIHighScore<\/span>.<\/span>text<\/span>\u00a0<\/span>=<\/span>\u00a0<\/span>“Highscore:\u00a0“<\/span>+<\/span>score<\/span>.<\/span>ToString<\/span>(<\/span>)<\/span>;<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>}<\/span>
\n\u00a0\u00a0\u00a0\u00a0<\/span>}<\/span><\/p>\nEsta es mi funci\u00f3n de actualizar los puntos. La llamada para actualizar el contador en Google Play Service esta entre el if del preprocesador que le indica que ese c\u00f3digo tan solo tiene que estar disponible para UNITY.<\/p>\n
Lo primero es indicar que importamos los Google Play Services:\u00a0using<\/span>\u00a0<\/span>GooglePlayGames<\/span>;<\/span><\/span><\/p>\nDespu\u00e9s comprobamos que tenemos sesi\u00f3n abierta con Google Play Services:\u00a0if<\/span>\u00a0<\/span>(<\/span>PlayGamesPlatform<\/span>.<\/span>Instance<\/span>.<\/span>localUser<\/span>.<\/span>authenticated<\/span>)<\/span><\/span><\/p>\nEn el caso de que est\u00e9 abierta ya podemos hacer la llamada indicando el identificador del leaderboard que queremos actualizar:\u00a0PlayGamesPlatform<\/span>.<\/span>Instance<\/span>.<\/span>ReportScore<\/span>(<\/span>score<\/span>,\u00a0<\/span>GPGidenti<\/span>.<\/span>leaderboard_giskard_in_the_dark_master_of_universe<\/span>,<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>(<\/span>bool<\/span>\u00a0<\/span>success<\/span>)<\/span>\u00a0<\/span>=><\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>{<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>Debug<\/span>.<\/span>Log<\/span>(<\/span>“(Giskard)\u00a0Leaderboard\u00a0update\u00a0success:\u00a0“<\/span>\u00a0<\/span>+<\/span>\u00a0<\/span>success<\/span>)<\/span>;<\/span>
\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>}<\/span>)<\/span>;<\/span><\/span><\/p>\nComo segundo par\u00e1metro pasamos una funci\u00f3n que ser\u00e1 llamada con el resultado de actualizar el leaderboard. En caso de que la actualizaci\u00f3n haya sido correcta nos devolver\u00e1 true<\/em>, y false<\/em> en caso contrario. Yo solo la uso para trazar el resultado de la operaci\u00f3n.<\/p>\n2.2-Mostrar el tablero de puntuaciones.<\/h2>\n
En el men\u00fa principal tengo un bot\u00f3n habilitado que ejecuta una funci\u00f3n con este c\u00f3digo:<\/p>\n
using<\/span>\u00a0<\/span>