/// <summary> /// Load settings from from a file. /// </summary> /// <param name="defaultSettings">Save and return defaultSettings if there are no saved settings.</param> /// <returns>Return loaded or default settings.</returns> public static Settings LoadSettings(Settings defaultSettings, DevDescriptor devDescriptor, AdjustSettings presaveAdjust) { if (!File.Exists(Paths.devSettingsPath)) { SaveSettings(defaultSettings, devDescriptor, presaveAdjust); return(defaultSettings); } using (var input = File.OpenRead(Paths.devSettingsPath)) { var settings = Settings.Parser.ParseFrom(input); return(settings); } }
/// <summary> /// Save settings to a file. /// </summary> /// <param name="settings">settings to save</param> /// <param name="presaveAdjust">Function to automatically change settings before saving them</param> public static void SaveSettings(Settings settings, DevDescriptor devDescriptor, AdjustSettings presaveAdjust) { settings = presaveAdjust(settings, devDescriptor); Directory.CreateDirectory(Path.GetDirectoryName(Paths.devSettingsPath)); using (var output = File.Create(Paths.devSettingsPath)) { settings.WriteTo(output); } AssetDatabase.Refresh(); }