예제 #1
0
        /// <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);
            }
        }
예제 #2
0
        /// <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();
        }