2015-06-07 12 views
6

HINTERGRUND
ich auf einem android game bin arbeiten, die auf Google Play Store veröffentlicht wurde.
Und jetzt plane ich Cloud-Save-Funktion als Update hinzuzufügen.
(FYI: Ich Unity und Play Games plugin mit)Speichern in Google Play Cloud-Speicher automatisch

PROBLEM
Nach Stunden der Forschung und Experiment, ich steckte ich zur Zeit, wie das Spiel automatisch zu speichern.

Mein Spiel ist eine Sammlung von Minispielen, in denen ein Spieler weiterspielen kann, bis er keine Leben mehr hat.
Ich möchte, dass die Speicherung automatisch zu dem Zeitpunkt erfolgt, an dem der Spieler verliert.

Nach dem Plugin, das ist, wie ich in die Cloud speichern:

public void SaveGame (ISavedGameMetadata game, byte[] savedData) { 
    /* code omitted */ 
    savedGameClient.CommitUpdate(game, updatedMetadata, savedData, OnSavedGameWritten); 
} 

Ich brauche 2 Parameter für die Funktion SaveGame, die erste einer der Meta-Daten ist, dann ist die zweite ist die Daten selbst .

Überall wo ich suche (auch in Google), finde ich keine Möglichkeit, die Metadaten automatisch zu generieren.
Basierend auf meinen Recherchen kann ich die Meta-Daten aus der Funktion unten erhalten:

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

Auf diese Weise Benutzer muss einen Dialog öffnen und erstellen Sie dann eine neue von ihm selbst retten.
Das kann in meinem Spiel nicht passieren, da ich jedes Mal speichern muss, wenn der Spieler verliert.

BEZUG
Ich weiß, dass es möglich sein soll, ein Spiel namens Get Bigger! Mola verliert der Spieler den Fortschritt jedes Mal retten konnte einen Dialog speichern, ohne zu öffnen.

FRAGE
Kann jemand mir irgendwelche Hinweise dazu?
Ich habe meinen ganzen Tag damit verbracht, ohne Antwort zu suchen ...
Jede Art von Hilfe wird sehr geschätzt werden.

+1

Haben Sie das noch herausgefunden? Ich habe das gleiche Problem. Ich bin überzeugt, dass es einen Weg geben muss, es zu tun, da viele Spiele Cloud-Speichern basierend auf Google-Konto erlauben, aber ich kann nichts über das Thema finden. – Bhaskar

Antwort

0

Ich persönlich bin nicht vertraut mit dem Asset, das Sie versuchen, die Statistiken mit zu speichern. Allerdings habe ich dieses Asset Stan's Native verwendet, das ich persönlich empfehlen kann.

Wenn Sie etwas anderes wollen kostenlos, da diese Links ist, Search Native

sowieso, sollten Sie Google Tutorials überprüfen etwa mit theie Cloud arbeiten, gibt es eine Vielzahl von Informationen, auf der Android-Website, die nicht mit sich bringt Einheit. Android Developer

0

Wie erwähnt here, können Sie einen neuen Snapshot öffnen, ohne einen aus einer Liste auswählen zu müssen, geben Sie einfach den Dateinamen an, falls vorhanden, wird er verwendet, andernfalls wird ein neuer erstellt.

Etwas wie folgt aus:

 ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame; 
    savedGameClient.OpenWithAutomaticConflictResolution(filename, DataSource.ReadCacheOrNetwork, 
     ConflictResolutionStrategy.UseLongestPlaytime, delegate(SavedGameRequestStatus status, ISavedGameMetadata metadata) { 
      // your code here .... 
     });