Rumah > pembangunan bahagian belakang > C++ > Bagaimana Mengendalikan Perubahan Versi Semasa Mengemas kini Data Bersiri dalam Unity?

Bagaimana Mengendalikan Perubahan Versi Semasa Mengemas kini Data Bersiri dalam Unity?

Mary-Kate Olsen
Lepaskan: 2025-01-03 18:13:44
asal
791 orang telah melayarinya

How to Handle Version Changes When Updating Serialized Data in Unity?

Mengemas kini Data Bersiri dalam Unity: Mengendalikan Perubahan Versi

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}");
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan