From 5b158af90739dcbb89c1538a6cb8c65a875dce80 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 26 Nov 2020 20:52:34 +0800 Subject: *misc --- .../Utils/Editor/SettingsUtils/SaveSettingsData.cs | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 Assets/BOXOPHOBIC/Utils/Editor/SettingsUtils/SaveSettingsData.cs (limited to 'Assets/BOXOPHOBIC/Utils/Editor/SettingsUtils/SaveSettingsData.cs') diff --git a/Assets/BOXOPHOBIC/Utils/Editor/SettingsUtils/SaveSettingsData.cs b/Assets/BOXOPHOBIC/Utils/Editor/SettingsUtils/SaveSettingsData.cs new file mode 100644 index 00000000..5e9dcf7f --- /dev/null +++ b/Assets/BOXOPHOBIC/Utils/Editor/SettingsUtils/SaveSettingsData.cs @@ -0,0 +1,71 @@ +// Cristian Pop - https://boxophobic.com/ + +using System.IO; +using UnityEditor; +using UnityEngine; + +namespace Boxophobic.Utils +{ + public partial class SettingsUtils + { + public static void SaveSettingsData(string settingsPath, string data) + { + CreateFileIfMissing(settingsPath); + + var settings = AssetDatabase.LoadAssetAtPath(settingsPath); + + settings.data = data; + + SaveFile(settingsPath); + } + + public static void SaveSettingsData(string settingsPath, int data) + { + CreateFileIfMissing(settingsPath); + + var settings = AssetDatabase.LoadAssetAtPath(settingsPath); + + settings.data = data.ToString(); + + SaveFile(settingsPath); + } + + public static void SaveSettingsData(string settingsPath, float data) + { + CreateFileIfMissing(settingsPath); + + var settings = AssetDatabase.LoadAssetAtPath(settingsPath); + + settings.data = data.ToString(); + + SaveFile(settingsPath); + } + + private static void CreateFileIfMissing(string settingsPath) + { + if (File.Exists(settingsPath) == false) + { + var directory = Path.GetDirectoryName(settingsPath); + + if (Directory.Exists(directory) == false) + { + Directory.CreateDirectory(directory); + AssetDatabase.Refresh(); + } + + AssetDatabase.CreateAsset(ScriptableObject.CreateInstance(), settingsPath); + AssetDatabase.Refresh(); + } + } + + private static void SaveFile(string settingsPath) + { + var file = AssetDatabase.LoadAssetAtPath(settingsPath); + + EditorUtility.SetDirty(file); + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + } + } +} + -- cgit v1.1-26-g67d0