diff options
author | chai <215380520@qq.com> | 2024-05-23 10:08:29 +0800 |
---|---|---|
committer | chai <215380520@qq.com> | 2024-05-23 10:08:29 +0800 |
commit | 8722a9920c1f6119bf6e769cba270e63097f8e25 (patch) | |
tree | 2eaf9865de7fb1404546de4a4296553d8f68cc3b /Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Drawing/DrawingSettings.cs | |
parent | 3ba4020b69e5971bb0df7ee08b31d10ea4d01937 (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.cs | 74 |
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; + } + } +} |