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/LoadSettingsData.cs | 71 ++++++++++++++++++++++ .../Editor/SettingsUtils/LoadSettingsData.cs.meta | 11 ++++ .../Utils/Editor/SettingsUtils/SaveSettingsData.cs | 71 ++++++++++++++++++++++ .../Editor/SettingsUtils/SaveSettingsData.cs.meta | 11 ++++ 4 files changed, 164 insertions(+) create mode 100644 Assets/BOXOPHOBIC/Utils/Editor/SettingsUtils/LoadSettingsData.cs create mode 100644 Assets/BOXOPHOBIC/Utils/Editor/SettingsUtils/LoadSettingsData.cs.meta create mode 100644 Assets/BOXOPHOBIC/Utils/Editor/SettingsUtils/SaveSettingsData.cs create mode 100644 Assets/BOXOPHOBIC/Utils/Editor/SettingsUtils/SaveSettingsData.cs.meta (limited to 'Assets/BOXOPHOBIC/Utils/Editor/SettingsUtils') diff --git a/Assets/BOXOPHOBIC/Utils/Editor/SettingsUtils/LoadSettingsData.cs b/Assets/BOXOPHOBIC/Utils/Editor/SettingsUtils/LoadSettingsData.cs new file mode 100644 index 00000000..fb1c3b85 --- /dev/null +++ b/Assets/BOXOPHOBIC/Utils/Editor/SettingsUtils/LoadSettingsData.cs @@ -0,0 +1,71 @@ +// Cristian Pop - https://boxophobic.com/ + +using System.Globalization; +using UnityEditor; + +namespace Boxophobic.Utils +{ + public partial class SettingsUtils + { + public static string LoadSettingsData(string settingsPath, string defaultData) + { + var settings = AssetDatabase.LoadAssetAtPath(settingsPath); + + if (settings != null) + { + return settings.data; + } + else + { + return defaultData; + } + } + + public static int LoadSettingsData(string settingsPath, int defaultData) + { + var settings = AssetDatabase.LoadAssetAtPath(settingsPath); + + if (settings != null) + { + int value; + + if (int.TryParse(settings.data, out value)) + { + return value; + } + else + { + return defaultData; + } + } + else + { + return defaultData; + } + } + + public static float LoadSettingsData(string settingsPath, float defaultData) + { + var settings = AssetDatabase.LoadAssetAtPath(settingsPath); + + if (settings != null) + { + float value; + + if (float.TryParse(settings.data, out value)) + { + return float.Parse(settings.data, CultureInfo.InvariantCulture); + } + else + { + return defaultData; + } + } + else + { + return defaultData; + } + } + } +} + diff --git a/Assets/BOXOPHOBIC/Utils/Editor/SettingsUtils/LoadSettingsData.cs.meta b/Assets/BOXOPHOBIC/Utils/Editor/SettingsUtils/LoadSettingsData.cs.meta new file mode 100644 index 00000000..41d9fe28 --- /dev/null +++ b/Assets/BOXOPHOBIC/Utils/Editor/SettingsUtils/LoadSettingsData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 90057ce590a8bd148ab59e018f35d9cb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: 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(); + } + } +} + diff --git a/Assets/BOXOPHOBIC/Utils/Editor/SettingsUtils/SaveSettingsData.cs.meta b/Assets/BOXOPHOBIC/Utils/Editor/SettingsUtils/SaveSettingsData.cs.meta new file mode 100644 index 00000000..753e92ed --- /dev/null +++ b/Assets/BOXOPHOBIC/Utils/Editor/SettingsUtils/SaveSettingsData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7afe5a6ac49829c408df7e64761e822d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: -- cgit v1.1-26-g67d0