Apabila mensiri data dalam Unity, mungkin akan menghadapi masalah jika anda mengubah suai struktur kelas bersiri kemudian hari. Menambah pembolehubah baharu boleh membawa kepada ralat penyahserialisasian.
Untuk menangani perkara ini, satu pendekatan ialah menggunakan penyiaran JSON dan PlayerPrefs untuk menyimpan dan mendapatkan semula data sebagai rentetan JSON. Begini cara anda boleh melaksanakannya:
[Serializable] public class Save { public List<int> ID; public List<int> Amounts; public int extra; } // Save Data void Save() { Save saveData = new Save(); saveData.ID = new List<int>(); saveData.Amounts = new List<int>(); saveData.extra = 99; // Convert to JSON string jsonData = JsonUtility.ToJson(saveData); // Save JSON string PlayerPrefs.SetString("MySettings", jsonData); PlayerPrefs.Save(); } // Load Data void Load() { // Load saved JSON string jsonData = PlayerPrefs.GetString("MySettings"); // Convert JSON back to class Save loadedData = JsonUtility.FromJson<Save>(jsonData); // Display saved data Debug.Log($"Extra: {loadedData.extra}"); }
Dalam pelaksanaan ini, kami menukar objek Simpan kepada rentetan JSON menggunakan JsonUtility.ToJson. Rentetan ini kemudiannya disimpan dalam PlayerPrefs. Apabila memuatkan data, kami menyahsiri rentetan JSON kembali ke dalam objek Simpan menggunakan JsonUtility.FromJson.
Pendekatan ini memastikan bahawa walaupun anda menambah pembolehubah baharu pada kelas Simpan kemudian, data tersimpan sedia ada masih boleh dimuatkan tanpa kesilapan. Proses penyahserikatan hanya akan mengabaikan pembolehubah baharu yang tidak dikenali.
Nota:
Apabila menggunakan teknik ini, adalah penting untuk mempertimbangkan kemungkinan isu dengan versi kelas yang berbeza. Contohnya, jika anda menukar jenis data pembolehubah dalam kelas Simpan, ia boleh menyebabkan isu keserasian apabila memuatkan data yang disimpan dengan versi kelas yang lebih lama.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Perubahan Versi Semasa Mengemas kini Data Bersiri dalam Unity?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!