Lưu trữ đám mây

Lưu dữ liệu JSON riêng của từng người chơi theo khóa, kèm bản sửa đổi để hai thiết bị không bao giờ âm thầm ghi đè lên nhau.

Chú thích trong mã và tên API được giữ nguyên tiếng Anh để khớp với SDK.

Trên trang này

Lưu#

Lưu mọi đối tượng có thể tuần tự hóa (Unity) hoặc giá trị JSON dưới một khóa. Mỗi lần lưu nhận số bản sửa đổi tiếp theo.

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

Tải#

Tải một khóa chưa từng được lưu sẽ trả về not_found: hãy coi đó là lần chạy đầu tiên.

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

Bản sửa đổi và xung đột#

Truyền bản sửa đổi bạn đã tải làm bản sửa đổi mong đợi. Nếu một thiết bị khác đã lưu trong lúc đó, thao tác lưu thất bại với revision_mismatch và details.current_revision; hãy tải lại, gộp dữ liệu và thử lại. Bản sửa đổi mong đợi là 0 nghĩa là chỉ tạo mới.

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
}

Liệt kê và xóa#

Liệt kê các khóa của người chơi kèm bản sửa đổi và kích thước, và xóa những khóa không còn cần:

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

Giới hạn#

  • Tối đa 256 KB mỗi bản lưu và 100 khóa mỗi người chơi.
  • Khóa có thể chứa chữ cái, chữ số, dấu chấm, gạch ngang và gạch dưới (tối đa 80 ký tự).
  • Tổng dung lượng lưu trữ mỗi tài khoản phụ thuộc vào gói (xem Giới hạn); vượt quá mức đó, thao tác lưu thất bại với plan_limit và không dữ liệu nào bị xóa.

Tìm theo tiêu đề trang, đề mục và nội dung.

↑↓ để di chuyển ↵ để mở Esc để đóng