Salvamento na nuvem

Armazene documentos JSON por jogador em chaves, com revisões, para que dois dispositivos nunca sobrescrevam um ao outro sem aviso.

Comentários de código e nomes da API ficam em inglês para corresponder aos SDKs.

Nesta página

Salvar#

Salve qualquer objeto serializável (Unity) ou valor JSON em uma chave. Cada salvamento recebe o próximo número de revisão.

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);

Carregar#

Carregar uma chave que nunca foi salva retorna not_found: trate isso como a primeira execução.

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

Revisões e conflitos#

Passe a revisão que você carregou como revisão esperada. Se outro dispositivo salvou nesse meio-tempo, o salvamento falha com revision_mismatch e details.current_revision; carregue de novo, mescle e tente outra vez. Uma revisão esperada 0 significa somente criar.

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
}

Listar e excluir#

Liste as chaves do jogador com as revisões e os tamanhos, e exclua as chaves de que você não precisa mais:

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#

  • Até 256 KB por documento e 100 chaves por jogador.
  • As chaves podem conter letras, números, pontos, hífens e sublinhados (até 80 caracteres).
  • O armazenamento total por conta depende do plano (veja Limites); acima dele, os salvamentos falham com plan_limit e nada é excluído.

Busca em títulos de páginas, seções e texto.

↑↓ para navegar ↵ para abrir Esc para fechar