123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247 |
- using System;
- using UnityEngine;
-
- namespace UnityEditor.U2D.Common.Path
- {
- internal class ControlPointSettings
- {
- const string kControlPointRKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.ControlPointR";
- const string kControlPointGKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.ControlPointG";
- const string kControlPointBKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.ControlPointB";
- const string kControlPointAKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.ControlPointA";
- static readonly GUIContent kControlPointKeyContent = EditorGUIUtility.TrTextContent("ControlPoint Color");
-
- const string kControlPointSRKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.ControlPointSR";
- const string kControlPointSGKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.ControlPointSG";
- const string kControlPointSBKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.ControlPointSB";
- const string kControlPointSAKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.ControlPointSA";
- static readonly GUIContent kControlPointSKeyContent = EditorGUIUtility.TrTextContent("ControlPoint (Selected)");
-
- static bool showHandle = true;
-
- public static Color controlPointColor
- {
- get
- {
- return new Color()
- {
- r = EditorPrefs.GetFloat(kControlPointRKey, 1),
- g = EditorPrefs.GetFloat(kControlPointGKey, 1),
- b = EditorPrefs.GetFloat(kControlPointBKey, 1),
- a = EditorPrefs.GetFloat(kControlPointAKey, 1)
- };
- }
- set
- {
- EditorPrefs.SetFloat(kControlPointRKey, value.r);
- EditorPrefs.SetFloat(kControlPointGKey, value.g);
- EditorPrefs.SetFloat(kControlPointBKey, value.b);
- EditorPrefs.SetFloat(kControlPointAKey, value.a);
- }
- }
-
- public static Color controlPointSelectedColor
- {
- get
- {
- return new Color()
- {
- r = EditorPrefs.GetFloat(kControlPointSRKey, 1),
- g = EditorPrefs.GetFloat(kControlPointSGKey, 235.0f / 255.0f),
- b = EditorPrefs.GetFloat(kControlPointSBKey, 4F / 255F),
- a = EditorPrefs.GetFloat(kControlPointSAKey, 1)
- };
- }
- set
- {
- EditorPrefs.SetFloat(kControlPointSRKey, value.r);
- EditorPrefs.SetFloat(kControlPointSGKey, value.g);
- EditorPrefs.SetFloat(kControlPointSBKey, value.b);
- EditorPrefs.SetFloat(kControlPointSAKey, value.a);
- }
- }
-
- internal void SetDefault()
- {
- controlPointColor = Color.white;
- controlPointSelectedColor = new Color(1.0f, 235.0f / 255.0f, 4.0f / 255.0f, 1.0f);
- }
-
- public void OnGUI()
- {
- EditorGUILayout.Space(8);
- showHandle = EditorGUILayout.BeginFoldoutHeaderGroup(showHandle, "Control Points");
- if (showHandle)
- {
- EditorGUI.indentLevel++;
-
- EditorGUI.BeginChangeCheck();
- var sc = EditorGUILayout.ColorField(kControlPointKeyContent, controlPointColor);
- if (EditorGUI.EndChangeCheck())
- controlPointColor = sc;
-
- EditorGUI.BeginChangeCheck();
- var sh = EditorGUILayout.ColorField(kControlPointSKeyContent, controlPointSelectedColor);
- if (EditorGUI.EndChangeCheck())
- controlPointSelectedColor = sh;
-
- EditorGUI.indentLevel--;
- }
- EditorGUILayout.EndFoldoutHeaderGroup();
- }
- }
- internal class HandleSettings
- {
- const string kSplineRKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.SplineR";
- const string kSplineGKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.SplineG";
- const string kSplineBKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.SplineB";
- const string kSplineAKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.SplineA";
- static readonly GUIContent kSplineKeyContent = EditorGUIUtility.TrTextContent("Spline Color");
-
- const string kSplineHRKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.SplineHR";
- const string kSplineHGKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.SplineHG";
- const string kSplineHBKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.SplineHB";
- const string kSplineHAKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.SplineHA";
- static readonly GUIContent kSplineHKeyContent = EditorGUIUtility.TrTextContent("Spline Color (Hovered)");
-
- const string kTangentRKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.TangentR";
- const string kTangentGKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.TangentG";
- const string kTangentBKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.TangentB";
- const string kTangentAKey = UserSettings.kSettingsUniqueKey + "PathEditorSetting.TangentA";
- static readonly GUIContent kTangentKeyContent = EditorGUIUtility.TrTextContent("Tangent Color");
-
- static bool showHandle = true;
-
- public static Color splineColor
- {
- get
- {
- return new Color()
- {
- r = EditorPrefs.GetFloat(kSplineRKey, 1),
- g = EditorPrefs.GetFloat(kSplineGKey, 1),
- b = EditorPrefs.GetFloat(kSplineBKey, 1),
- a = EditorPrefs.GetFloat(kSplineAKey, 1)
- };
- }
- set
- {
- EditorPrefs.SetFloat(kSplineRKey, value.r);
- EditorPrefs.SetFloat(kSplineGKey, value.g);
- EditorPrefs.SetFloat(kSplineBKey, value.b);
- EditorPrefs.SetFloat(kSplineAKey, value.a);
- }
- }
-
- public static Color splineHoveredColor
- {
- get
- {
- return new Color()
- {
- r = EditorPrefs.GetFloat(kSplineHRKey, 1),
- g = EditorPrefs.GetFloat(kSplineHGKey, 235.0f / 255.0f),
- b = EditorPrefs.GetFloat(kSplineHBKey, 4F / 255F),
- a = EditorPrefs.GetFloat(kSplineHAKey, 1)
- };
- }
- set
- {
- EditorPrefs.SetFloat(kSplineHRKey, value.r);
- EditorPrefs.SetFloat(kSplineHGKey, value.g);
- EditorPrefs.SetFloat(kSplineHBKey, value.b);
- EditorPrefs.SetFloat(kSplineHAKey, value.a);
- }
- }
-
- public static Color tangentColor
- {
- get
- {
- return new Color()
- {
- r = EditorPrefs.GetFloat(kTangentRKey, 1),
- g = EditorPrefs.GetFloat(kTangentGKey, 235.0f / 255.0f),
- b = EditorPrefs.GetFloat(kTangentBKey, 4F / 255F),
- a = EditorPrefs.GetFloat(kTangentAKey, 1)
- };
- }
- set
- {
- EditorPrefs.SetFloat(kTangentRKey, value.r);
- EditorPrefs.SetFloat(kTangentGKey, value.g);
- EditorPrefs.SetFloat(kTangentBKey, value.b);
- EditorPrefs.SetFloat(kTangentAKey, value.a);
- }
- }
-
- internal void SetDefault()
- {
- splineColor = Color.white;
- splineHoveredColor = new Color(1.0f, 235.0f / 255.0f, 4.0f / 255.0f, 1.0f);
- tangentColor = new Color(1.0f, 235.0f / 255.0f, 4.0f / 255.0f, 1.0f);
- }
-
- public void OnGUI()
- {
- EditorGUILayout.Space(8);
- showHandle = EditorGUILayout.BeginFoldoutHeaderGroup(showHandle, "Splines and Tangent");
- if (showHandle)
- {
- EditorGUI.indentLevel++;
-
- EditorGUI.BeginChangeCheck();
- var sc = EditorGUILayout.ColorField(kSplineKeyContent, splineColor);
- if (EditorGUI.EndChangeCheck())
- splineColor = sc;
-
- EditorGUI.BeginChangeCheck();
- var sh = EditorGUILayout.ColorField(kSplineHKeyContent, splineHoveredColor);
- if (EditorGUI.EndChangeCheck())
- splineHoveredColor = sh;
-
- EditorGUI.BeginChangeCheck();
- var tc = EditorGUILayout.ColorField(kTangentKeyContent, tangentColor);
- if (EditorGUI.EndChangeCheck())
- tangentColor = tc;
-
- EditorGUI.indentLevel--;
- }
- EditorGUILayout.EndFoldoutHeaderGroup();
- }
- }
-
- internal class UserSettings : SettingsProvider
- {
- public const string kSettingsUniqueKey = "UnityEditor.U2D.SpriteShape/";
- private static ControlPointSettings s_ControlPointSettings = new ControlPointSettings();
- private static HandleSettings s_HandleSettings = new HandleSettings();
-
- public UserSettings() : base("Preferences/2D/SpriteShape", SettingsScope.User)
- {
- guiHandler = OnGUI;
- }
-
- [SettingsProvider]
- private static SettingsProvider CreateSettingsProvider()
- {
- return new UserSettings()
- {
- guiHandler = SettingsGUI
- };
- }
-
- private static void SettingsGUI(string searchContext)
- {
- s_ControlPointSettings.OnGUI();
- s_HandleSettings.OnGUI();
- EditorGUILayout.Space();
-
- if (GUILayout.Button("Use Defaults", new GUILayoutOption[] { GUILayout.Width(100)}))
- {
- s_ControlPointSettings.SetDefault();
- s_HandleSettings.SetDefault();
- }
- }
- }
- }
|