1.二进制
private static void SaveByBinary() { //创建二进制格式化程序 BinaryFormatter bf = new BinaryFormatter(); //创建一个文件流 FileStream fs = File.Create(GetFilePath(SaveDataType)); //二进制方法序列化对象 bf.Serialize(fs, GameData); //关闭流 fs.Close(); } private static void LoadByBinary() { //创建二进制格式化程序 BinaryFormatter bf = new BinaryFormatter(); //打开一个文件流 FileStream fs = File.Open(GetFilePath(SaveDataType), FileMode.Open); //二进制方法序列化对象 GameData = (SaveData)bf.Deserialize(fs); //关闭流 fs.Close(); }
2.Json
private static void SaveByJson() { //将SaveData对象转换成json格式的字符串 string _saveJson = JsonMapper.ToJson(GameData); //将字符串写到文件中 StreamWriter sw = new StreamWriter(GetFilePath(SaveDataType)); //写入 sw.Write(_saveJson); //关闭流 sw.Close(); } private static void LoadByJson() { //创建流读取文件 StreamReader sr = new StreamReader(GetFilePath(SaveDataType)); //将读到的流转换成字符串 string _saveJson = sr.ReadToEnd(); GameData = JsonMapper.ToObject<SaveData>(_saveJson); //关闭流 sr.Close(); }
3.Xml
过于繁琐,仅提供大概步骤
private static void SaveByXml() { //将SaveData对象转换成json格式的字符串 string _saveJson = JsonMapper.ToJson(GameData); /*步骤 * 1.创建xml文档 XmlDocument xmlDoc = new XmlDocument(); * 2.创建根节点,设置根节点属性 可有可无 * 3.创建根节点中的元素及元素中的元素,并添加到根节点中 xxx.AppendChild(elm); root.AppendChild(xxx); */ } private static void LoadByXml() { /*步骤 * 1.加载xml文档 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(GetFilePath(SaveDataType)); * 2.通过节点名获取元素 XmlNodeList xxx = xmlDoc.GetElementsByTagName("xxx"); * 3.遍历节点子节点,赋值 */ }
4.PlayerPrefs
private static void SaveByPlayerPrefs() { //将SaveData对象转换成json格式的字符串 string _saveJson = JsonMapper.ToJson(GameData); PlayerPrefs.SetString("SaveData", _saveJson); PlayerPrefs.Save(); } private static void LoadByPlayerPrefs() { string _saveJson = PlayerPrefs.GetString("SaveData"); GameData = JsonMapper.ToObject<SaveData>(_saveJson); }
标签:saveJson,存档,void,private,读档,Unity,static,GameData,new From: https://www.cnblogs.com/zerobeyond/p/17555896.html