在 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中文网其他相关文章!