public static void SaveConfig(IConfigFile config) { ConfigNameAttribute attr = (ConfigNameAttribute)config.GetType().GetCustomAttributes(typeof(ConfigNameAttribute), false).FirstOrDefault(); string cfgName = attr == null?config.GetType().Name : attr.name; File.WriteAllText(GetPath(cfgName), JsonUtility.ToJson(config)); }
private static void LoadConfig(Type t) { ConfigNameAttribute attr = (ConfigNameAttribute)t.GetCustomAttributes(typeof(ConfigNameAttribute), false).FirstOrDefault(); string cfgName = attr == null ? t.Name : attr.name; string path = GetPath(cfgName); if (Directory.Exists(ConfigFolder) && File.Exists(path)) { configFiles.Add(cfgName, (IConfigFile)JsonUtility.FromJson(File.ReadAllText(path), t)); } else { IConfigFile cfg = (IConfigFile)Activator.CreateInstance(t); configFiles.Add(cfgName, cfg); Directory.CreateDirectory(ConfigFolder); File.WriteAllText(path, JsonUtility.ToJson(cfg));// save default } }