/// <summary> /// 加载存档 /// </summary> /// <param name="_data"></param> /// <param name="callback"></param> public void LoadGame(T _data, UnityAction <T> callback = null) { if (_data == null) { return; } Scriptablebase data = _data; BinaryFormatter bf = new BinaryFormatter(); string pathName = "ItemsData"; pathName = (_data as Scriptablebase).PathName; string datasName = (_data as Scriptablebase).DataName; string path = Application.persistentDataPath + "/GameData/" + pathName + "/" + datasName + "_data.txt"; if (File.Exists(path)) { FileStream file = File.Open(path, FileMode.Open); JsonUtility.FromJsonOverwrite((string)bf.Deserialize(file), data); callback?.Invoke(data as T); file.Close(); } else { callback?.Invoke(null); } }
/// <summary> /// 保存数据 /// </summary> /// <param name="gameData"></param> /// <param name="callback"></param> public void SaveGame(Scriptablebase gameData, UnityAction <Scriptablebase> callback = null) { if (gameData == null) { return; } Debug.Log(Application.persistentDataPath); Scriptablebase data = gameData; string pathName = "ItemsData"; pathName = (gameData as Scriptablebase).PathName; string datasName = (gameData as Scriptablebase).DataName; string path = Application.persistentDataPath + "/GameData/" + pathName; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } path = path + "/" + datasName + "_data.txt"; //二进制转化 BinaryFormatter formatter = new BinaryFormatter(); FileStream file = File.Create(path); var json = JsonUtility.ToJson(data); Debug.Log(json); formatter.Serialize(file, json); file.Close(); }