Sauvegarde cloud

Stockez des documents JSON par joueur sous des clés, avec des révisions pour que deux appareils ne s'écrasent jamais en silence.

Les commentaires du code et les noms d'API restent en anglais pour correspondre aux SDK.

Sur cette page

Sauvegarder#

Sauvegardez n'importe quel objet sérialisable (Unity) ou valeur JSON sous une clé. Chaque sauvegarde reçoit le numéro de révision suivant.

C#
[System.Serializable]
public class Progress { public int level; public int coins; }

var saved = await Majacloud.CloudSave.SaveAsync("progress", new Progress { level = 3, coins = 120 });
if (saved.Ok) Debug.Log("Saved revision " + saved.Value.Revision);

Charger#

Charger une clé qui n'a jamais été sauvegardée renvoie not_found : traitez ce cas comme un premier lancement.

C#
var loaded = await Majacloud.CloudSave.LoadAsync<Progress>("progress");
if (loaded.Ok) progress = loaded.Value.Data;
else if (loaded.IsNotFound) progress = new Progress(); // first launch

Révisions et conflits#

Passez la révision que vous avez chargée comme révision attendue. Si un autre appareil a sauvegardé entre-temps, la sauvegarde échoue avec revision_mismatch et details.current_revision ; rechargez, fusionnez puis réessayez. Une révision attendue de 0 signifie création uniquement.

C#
// Only overwrite the revision we loaded; another device may have saved since
var safe = await Majacloud.CloudSave.SaveAsync("progress", progress, expectedRevision: loaded.Value.Revision);
if (!safe.Ok && safe.Error.Code == MajacloudErrorCode.RevisionMismatch)
{
    // Load again, merge, and save with the new revision
}

Lister et supprimer#

Listez les clés du joueur avec leurs révisions et leurs tailles, et supprimez celles dont vous n'avez plus besoin :

C#
var keys = await Majacloud.CloudSave.ListAsync();
foreach (var entry in keys.Value) Debug.Log(entry.Key + " r" + entry.Revision + " " + entry.SizeBytes + " B");

await Majacloud.CloudSave.DeleteAsync("old_slot");

Limites#

  • Jusqu'à 256 Ko par document et 100 clés par joueur.
  • Les clés peuvent contenir des lettres, des chiffres, des points, des tirets et des tirets bas (80 caractères maximum).
  • Le stockage total par compte dépend de l'offre (voir Limites) ; au-delà, les sauvegardes échouent avec plan_limit et rien n'est supprimé.

Recherche dans les titres de page, les intertitres et le texte.

↑↓ pour naviguer ↵ pour ouvrir Esc pour fermer