android - services - google play juegos cuenta
Guardar en Google Play Cloud Save Automatically (2)
FONDO
Estoy trabajando en un juego de Android que se ha publicado en Google Play Store.
Y ahora planeo agregar la función Cloud Save como una actualización.
(Para su información: estoy usando el plugin Unity y Play Games )
PROBLEMA
Después de horas de investigación y experimento, actualmente estoy atascado en cómo guardar el juego automáticamente.
Mi juego es una colección de mini juegos donde un jugador puede seguir jugando hasta que se quede sin vida.
Quiero que el rescate ocurra automáticamente en el momento en que el jugador pierde.
De acuerdo con el complemento, así es como lo guardo en la nube:
public void SaveGame (ISavedGameMetadata game, byte[] savedData) {
/* code omitted */
savedGameClient.CommitUpdate(game, updatedMetadata, savedData, OnSavedGameWritten);
}
Necesito 2 parámetros para la función SaveGame
, el primero es el metadato, luego el segundo son los datos.
En todas partes que busco (incluso en Google), no puedo encontrar una forma de generar los metadatos automáticamente.
Basado en mi investigación, puedo obtener los metadatos de la función a continuación:
void ShowSelectUI() {
uint maxNumToDisplay = 5;
bool allowCreateNew = true;
bool allowDelete = true;
// I will need to call this function first
// This will display a dialog to the player
// The player will need to create a new save manually afterwards
ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;
savedGameClient.ShowSelectSavedGameUI("Select saved game",
maxNumToDisplay,
allowCreateNew,
allowDelete,
OnSavedGameSelected);
}
public void OnSavedGameSelected (SelectUIStatus status, ISavedGameMetadata game) {
// And then from the callback function I get the meta data
// (ISavedGameMetadata game)
if (status == SelectUIStatus.SavedGameSelected) {
// handle selected game save
} else {
// handle cancel or error
}
}
De esta forma, el usuario deberá abrir un cuadro de diálogo y luego crear un nuevo guardado por sí mismo.
Eso no puede suceder en mi juego, ya que necesito ahorrar cada vez que el jugador pierde.
REFERENCIA
Sé que debería ser posible, un juego llamado Get Bigger! Mola podría guardar el progreso cada vez que el jugador pierda sin abrir un cuadro de diálogo para guardar.
PREGUNTA
¿Alguien puede darme alguna pista sobre esto?
He pasado todo el día buscando sin una respuesta ...
Cualquier tipo de ayuda será muy apreciada.
Personalmente no estoy familiarizado con el activo con el que intentas guardar las estadísticas. Sin embargo, utilicé este activo Stan''s Native que personalmente puedo recomendar.
Si quieres algo más gratis, existen estos enlaces, Buscar nativo
de todos modos, debe consultar los Tutoriales de Google sobre cómo trabajar con su nube, hay mucha información, en el sitio de Android, que no involucra a Unity. Desarrollador de Android
Como se menciona aquí , puede abrir una nueva instantánea sin tener que seleccionar una de una lista, solo especifique el nombre del archivo, si existe, lo usará, de lo contrario, creará una nueva.
Algo como esto:
ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;
savedGameClient.OpenWithAutomaticConflictResolution(filename, DataSource.ReadCacheOrNetwork,
ConflictResolutionStrategy.UseLongestPlaytime, delegate(SavedGameRequestStatus status, ISavedGameMetadata metadata) {
// your code here ....
});