在Unity 中,將資料儲存為序列化類別時,請向該類別新增其他變數可能會導致衝突載入已儲存檔案的舊版本。要妥善處理此問題,請考慮將資料轉換為 JSON 格式。
使用 JsonUtility.ToJson 將序列化類別轉換為 JSON 字串。使用 PlayerPrefs.SetString 或其他首選方法儲存此字串。載入資料時,使用 JsonUtility.FromJson 將 JSON 字串轉換回類別。
儲存資料:
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(); }
載入Data:
void Load() { string jsonData = PlayerPrefs.GetString("MySettings"); Save loadedData = Save.FromJson(jsonData); ... // Use the loaded data }
以上是如何在 Unity 中安全地保存和載入數據,處理可序列化類別的變更?的詳細內容。更多資訊請關注PHP中文網其他相關文章!