summaryrefslogtreecommitdiff
path: root/Assets/uGUI-2017.1/Editor/UI/SliderEditor.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-05-08 23:15:13 +0800
committerchai <chaifix@163.com>2021-05-08 23:15:13 +0800
commitd07e14add74e017b52ab2371efeea1aa4ea10ced (patch)
treeefd07869326e4c428f5bfe43fad0c2583d32a401 /Assets/uGUI-2017.1/Editor/UI/SliderEditor.cs
+init
Diffstat (limited to 'Assets/uGUI-2017.1/Editor/UI/SliderEditor.cs')
-rw-r--r--Assets/uGUI-2017.1/Editor/UI/SliderEditor.cs88
1 files changed, 88 insertions, 0 deletions
diff --git a/Assets/uGUI-2017.1/Editor/UI/SliderEditor.cs b/Assets/uGUI-2017.1/Editor/UI/SliderEditor.cs
new file mode 100644
index 0000000..f284648
--- /dev/null
+++ b/Assets/uGUI-2017.1/Editor/UI/SliderEditor.cs
@@ -0,0 +1,88 @@
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace UnityEditor.UI
+{
+ [CustomEditor(typeof(Slider), true)]
+ [CanEditMultipleObjects]
+ public class SliderEditor : SelectableEditor
+ {
+ SerializedProperty m_Direction;
+ SerializedProperty m_FillRect;
+ SerializedProperty m_HandleRect;
+ SerializedProperty m_MinValue;
+ SerializedProperty m_MaxValue;
+ SerializedProperty m_WholeNumbers;
+ SerializedProperty m_Value;
+ SerializedProperty m_OnValueChanged;
+
+ protected override void OnEnable()
+ {
+ base.OnEnable();
+ m_FillRect = serializedObject.FindProperty("m_FillRect");
+ m_HandleRect = serializedObject.FindProperty("m_HandleRect");
+ m_Direction = serializedObject.FindProperty("m_Direction");
+ m_MinValue = serializedObject.FindProperty("m_MinValue");
+ m_MaxValue = serializedObject.FindProperty("m_MaxValue");
+ m_WholeNumbers = serializedObject.FindProperty("m_WholeNumbers");
+ m_Value = serializedObject.FindProperty("m_Value");
+ m_OnValueChanged = serializedObject.FindProperty("m_OnValueChanged");
+ }
+
+ public override void OnInspectorGUI()
+ {
+ base.OnInspectorGUI();
+ EditorGUILayout.Space();
+
+ serializedObject.Update();
+
+ EditorGUILayout.PropertyField(m_FillRect);
+ EditorGUILayout.PropertyField(m_HandleRect);
+
+ if (m_FillRect.objectReferenceValue != null || m_HandleRect.objectReferenceValue != null)
+ {
+ EditorGUI.BeginChangeCheck();
+ EditorGUILayout.PropertyField(m_Direction);
+ if (EditorGUI.EndChangeCheck())
+ {
+ Slider.Direction direction = (Slider.Direction)m_Direction.enumValueIndex;
+ foreach (var obj in serializedObject.targetObjects)
+ {
+ Slider slider = obj as Slider;
+ slider.SetDirection(direction, true);
+ }
+ }
+
+ EditorGUILayout.PropertyField(m_MinValue);
+ EditorGUILayout.PropertyField(m_MaxValue);
+ EditorGUILayout.PropertyField(m_WholeNumbers);
+ EditorGUILayout.Slider(m_Value, m_MinValue.floatValue, m_MaxValue.floatValue);
+
+ bool warning = false;
+ foreach (var obj in serializedObject.targetObjects)
+ {
+ Slider slider = obj as Slider;
+ Slider.Direction dir = slider.direction;
+ if (dir == Slider.Direction.LeftToRight || dir == Slider.Direction.RightToLeft)
+ warning = (slider.navigation.mode != Navigation.Mode.Automatic && (slider.FindSelectableOnLeft() != null || slider.FindSelectableOnRight() != null));
+ else
+ warning = (slider.navigation.mode != Navigation.Mode.Automatic && (slider.FindSelectableOnDown() != null || slider.FindSelectableOnUp() != null));
+ }
+
+ if (warning)
+ EditorGUILayout.HelpBox("The selected slider direction conflicts with navigation. Not all navigation options may work.", MessageType.Warning);
+
+ // Draw the event notification options
+ EditorGUILayout.Space();
+ EditorGUILayout.PropertyField(m_OnValueChanged);
+ }
+ else
+ {
+ EditorGUILayout.HelpBox("Specify a RectTransform for the slider fill or the slider handle or both. Each must have a parent RectTransform that it can slide within.", MessageType.Info);
+ }
+
+ serializedObject.ApplyModifiedProperties();
+ }
+ }
+}