คลาวด์เซฟ

จัดเก็บเอกสาร JSON รายผู้เล่นตามคีย์ พร้อมรีวิชัน เพื่อไม่ให้สองอุปกรณ์เขียนทับกันโดยไม่รู้ตัว

คอมเมนต์ในโค้ดและชื่อ API ยังคงเป็นภาษาอังกฤษเพื่อให้ตรงกับ SDK

ในหน้านี้

บันทึก#

บันทึกออบเจกต์ใดก็ได้ที่ซีเรียลไลซ์ได้ (Unity) หรือค่า JSON ไว้ภายใต้คีย์ การบันทึกแต่ละครั้งจะได้หมายเลขรีวิชันถัดไป

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

โหลด#

การโหลดคีย์ที่ไม่เคยบันทึกจะได้ not_found ให้ถือว่าเป็นการเปิดเกมครั้งแรก

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

รีวิชันและข้อขัดแย้ง#

ส่งรีวิชันที่โหลดมาเป็นรีวิชันที่คาดหวัง หากอุปกรณ์อื่นบันทึกไปก่อนแล้ว การบันทึกจะล้มเหลวด้วย revision_mismatch และ details.current_revision ให้โหลดใหม่ รวมข้อมูล แล้วลองอีกครั้ง รีวิชันที่คาดหวังเป็น 0 หมายถึง สร้างใหม่เท่านั้น

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
}

แสดงรายการและลบ#

แสดงรายการคีย์ของผู้เล่นพร้อมรีวิชันและขนาด และลบคีย์ที่ไม่ต้องการแล้ว:

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

ขีดจำกัด#

  • สูงสุด 256 KB ต่อเอกสาร และ 100 คีย์ต่อผู้เล่น
  • คีย์ประกอบด้วยตัวอักษร ตัวเลข จุด ขีดกลาง และขีดล่างได้ (สูงสุด 80 ตัวอักษร)
  • พื้นที่จัดเก็บรวมต่อบัญชีขึ้นอยู่กับแพ็กเกจ (ดู ขีดจำกัด) หากเกิน การบันทึกจะล้มเหลวด้วย plan_limit และไม่มีข้อมูลใดถูกลบ

ค้นหาจากชื่อหน้า หัวข้อ และเนื้อหา

↑↓ เพื่อเลื่อน ↵ เพื่อเปิด Esc เพื่อปิด