summaryrefslogtreecommitdiff
path: root/Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Drawing/DrawingSettings.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2024-05-23 10:08:29 +0800
committerchai <215380520@qq.com>2024-05-23 10:08:29 +0800
commit8722a9920c1f6119bf6e769cba270e63097f8e25 (patch)
tree2eaf9865de7fb1404546de4a4296553d8f68cc3b /Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Drawing/DrawingSettings.cs
parent3ba4020b69e5971bb0df7ee08b31d10ea4d01937 (diff)
+ astar project
Diffstat (limited to 'Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Drawing/DrawingSettings.cs')
-rw-r--r--Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Drawing/DrawingSettings.cs74
1 files changed, 74 insertions, 0 deletions
diff --git a/Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Drawing/DrawingSettings.cs b/Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Drawing/DrawingSettings.cs
new file mode 100644
index 0000000..7af8883
--- /dev/null
+++ b/Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Drawing/DrawingSettings.cs
@@ -0,0 +1,74 @@
+#pragma warning disable CS0169, CS0414 // The field 'DrawingSettings.version' is never used
+using UnityEditor;
+using UnityEngine;
+
+namespace Pathfinding.Drawing {
+ /// <summary>Stores ALINE project settings</summary>
+ public class DrawingSettings : ScriptableObject {
+ public const string SettingsPathCompatibility = "Assets/Settings/ALINE.asset";
+ public const string SettingsName = "AstarGizmos";
+ public const string SettingsPath = "Assets/Settings/Resources/" + SettingsName + ".asset";
+
+ /// <summary>Stores ALINE project settings</summary>
+ [System.Serializable]
+ public class Settings {
+ /// <summary>Opacity of lines when in front of objects</summary>
+ public float lineOpacity = 1.0f;
+
+ /// <summary>Opacity of solid objects when in front of other objects</summary>
+
+ public float solidOpacity = 0.55f;
+
+ /// <summary>Opacity of text when in front of other objects</summary>
+
+ public float textOpacity = 1.0f;
+
+ /// <summary>Additional opacity multiplier of lines when behind or inside objects</summary>
+
+ public float lineOpacityBehindObjects = 0.12f;
+
+ /// <summary>Additional opacity multiplier of solid objects when behind or inside other objects</summary>
+
+ public float solidOpacityBehindObjects = 0.45f;
+
+ /// <summary>Additional opacity multiplier of text when behind or inside other objects</summary>
+
+ public float textOpacityBehindObjects = 0.9f;
+
+ /// <summary>
+ /// Resolution of curves, as a fraction of the default.
+ ///
+ /// The resolution of curves is dynamic based on the distance to the camera.
+ /// This setting will make the curves higher or lower resolution by a factor from the default.
+ /// </summary>
+ public float curveResolution = 1.0f;
+ }
+
+ [SerializeField]
+ private int version;
+ public Settings settings;
+
+ public static Settings DefaultSettings => new Settings();
+
+ public static DrawingSettings GetSettingsAsset () {
+#if UNITY_EDITOR
+ System.IO.Directory.CreateDirectory(Application.dataPath + "/../" + System.IO.Path.GetDirectoryName(SettingsPath));
+ var settings = AssetDatabase.LoadAssetAtPath<DrawingSettings>(SettingsPath);
+ if (settings == null && AssetDatabase.LoadAssetAtPath<DrawingSettings>(SettingsPathCompatibility) != null) {
+ AssetDatabase.MoveAsset(SettingsPathCompatibility, SettingsPath);
+ settings = AssetDatabase.LoadAssetAtPath<DrawingSettings>(SettingsPath);
+ }
+ if (settings == null) {
+ settings = ScriptableObject.CreateInstance<DrawingSettings>();
+ settings.settings = DefaultSettings;
+ settings.version = 0;
+ AssetDatabase.CreateAsset(settings, SettingsPath);
+ AssetDatabase.SaveAssets();
+ }
+#else
+ var settings = Resources.Load<DrawingSettings>(SettingsName);
+#endif
+ return settings;
+ }
+ }
+}