123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using System.IO;
- using UnityEngine;
- namespace Asset_Cleaner {
- static class PersistenceUtils {
- public static void Load(ref Config result) {
- var serializable = Deserialize();
- AufSerializableData.OnDeserialize(in serializable, ref result);
- }
- public static void Save(in Config src) {
- AufSerializableData.OnSerialize(in src, out var serializable);
- var json = JsonUtility.ToJson(serializable);
- File.WriteAllText(Path, json);
- }
- static AufSerializableData Deserialize() {
- AufSerializableData serializableData;
- string json;
- if (!File.Exists(Path)) {
- // not exists - write new
- serializableData = AufSerializableData.Default();
- json = JsonUtility.ToJson(serializableData);
- File.WriteAllText(Path, json);
- }
- else {
- // exists
- json = File.ReadAllText(Path);
- if (string.IsNullOrEmpty(json)) {
- // but corrupted - overwrite with new
- serializableData = AufSerializableData.Default();
- json = JsonUtility.ToJson(serializableData);
- File.WriteAllText(Path, json);
- }
- serializableData = JsonUtility.FromJson<AufSerializableData>(json);
- if (serializableData.Valid())
- return serializableData;
- serializableData = AufSerializableData.Default();
- json = JsonUtility.ToJson(serializableData);
- File.WriteAllText(Path, json);
- }
- return serializableData;
- }
- static string Path => $"{Application.temporaryCachePath}/AssetCleaner_{AufSerializableData.CurrentVersion}.json";
- // [MenuItem("Tools/LogPath")]
- static void Log() {
- Debug.Log(Application.temporaryCachePath);
- }
- }
- }
|