Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menyimpan dan Memuatkan Data dengan Selamat dalam Unity, Mengendalikan Perubahan pada Kelas Boleh Bersiri Saya?

Bagaimanakah Saya Boleh Menyimpan dan Memuatkan Data dengan Selamat dalam Unity, Mengendalikan Perubahan pada Kelas Boleh Bersiri Saya?

DDD
Lepaskan: 2025-01-04 06:05:39
asal
992 orang telah melayarinya

How Can I Safely Save and Load Data in Unity, Handling Changes to My Serializable Class?

Menyimpan Data dalam Unity: Mengendalikan Perubahan dalam Kelas Boleh Bersiri

Dalam Unity, apabila menyimpan data sebagai kelas bersiri, menambah pembolehubah tambahan pada kelas boleh menyebabkan konflik apabila memuatkan versi lama fail yang disimpan. Untuk mengendalikan perkara ini dengan baik, pertimbangkan untuk menukar data kepada format JSON.

Tukar kepada JSON untuk Simpan/Muat Fleksibiliti

Gunakan JsonUtility.ToJson untuk menukar kelas bersiri kepada rentetan JSON. Simpan rentetan ini menggunakan PlayerPrefs.SetString atau kaedah pilihan lain. Apabila memuatkan data, gunakan JsonUtility.FromJson untuk menukar rentetan JSON kembali ke dalam kelas.

Kod Contoh untuk Penukaran Data

Simpan Data:

using UnityEngine;
using System;
using System.Collections.Generic;

[Serializable]
public class Save
{
    public List<int> ID = new List<int>();
    public List<int> Amounts = new List<int>();
    public int extra = 0;
    public float highScore = 0;

    public string ToJson()
    {
        return JsonUtility.ToJson(this);
    }

    public static Save FromJson(string json)
    {
        return JsonUtility.FromJson<Save>(json);
    }
}

void Save()
{
    Save saveData = new Save();
    ... // Populate the data fields
    string jsonData = saveData.ToJson();
    PlayerPrefs.SetString("MySettings", jsonData);
    PlayerPrefs.Save();
}
Salin selepas log masuk

Muat Data:

void Load()
{
    string jsonData = PlayerPrefs.GetString("MySettings");
    Save loadedData = Save.FromJson(jsonData);

    ... // Use the loaded data
}
Salin selepas log masuk

Pertimbangan Tambahan

  • JsonUtility.FromJsonOverwrite: Kaedah ini membenarkan menulis ganti data sedia ada dalam kejadian tanpa mencipta tika baharu. Ini boleh berguna untuk mengemas kini struktur data seperti tatasusunan atau senarai.
  • Peruntukan Memori: Menukar kepada JSON boleh melibatkan peruntukan memori untuk senarai dan rentetan. Pertimbangkan untuk menggunakan semula kejadian sedia ada jika boleh.
  • Keserasian Data: Pastikan apabila membuat perubahan pada kelas, versi lama data masih boleh dimuatkan dengan menyediakan nilai sandaran atau mengendalikan pembolehubah yang hilang dengan anggun.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyimpan dan Memuatkan Data dengan Selamat dalam Unity, Mengendalikan Perubahan pada Kelas Boleh Bersiri Saya?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan