12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- using UnityEngine;
- using UnityEngine.UI;
-
- namespace UnityEditor.UI
- {
- [CustomEditor(typeof(RectMask2D), true)]
- [CanEditMultipleObjects]
- /// <summary>
- /// Custom editor for the RectMask2d component.
- /// Extend this class to write a custom editor for a component derived from Mask.
- /// </summary>
- public class RectMask2DEditor : Editor
- {
- SerializedProperty m_Padding;
- SerializedProperty m_Softness;
- GUIContent m_PaddingContent;
- GUIContent m_LeftContent;
- GUIContent m_RightContent;
- GUIContent m_TopContent;
- GUIContent m_BottomContent;
-
- static private bool m_ShowOffsets = false;
-
- protected virtual void OnEnable()
- {
- m_PaddingContent = EditorGUIUtility.TrTextContent("Padding");
- m_LeftContent = EditorGUIUtility.TrTextContent("Left");
- m_RightContent = EditorGUIUtility.TrTextContent("Right");
- m_TopContent = EditorGUIUtility.TrTextContent("Top");
- m_BottomContent = EditorGUIUtility.TrTextContent("Bottom");
- m_Padding = serializedObject.FindProperty("m_Padding");
- m_Softness = serializedObject.FindProperty("m_Softness");
- }
-
- public override void OnInspectorGUI()
- {
- m_ShowOffsets = EditorGUILayout.Foldout(m_ShowOffsets, m_PaddingContent, true);
-
- if (m_ShowOffsets)
- OffsetGUI();
-
- EditorGUILayout.PropertyField(m_Softness);
-
- serializedObject.ApplyModifiedProperties();
- }
-
- void OffsetGUI()
- {
- using (var check = new EditorGUI.ChangeCheckScope())
- {
- EditorGUI.indentLevel++;
- Vector4 newPadding = m_Padding.vector4Value;
-
- newPadding.x = EditorGUILayout.FloatField(m_LeftContent, newPadding.x);
- newPadding.z = EditorGUILayout.FloatField(m_RightContent, newPadding.z);
- newPadding.w = EditorGUILayout.FloatField(m_TopContent, newPadding.w);
- newPadding.y = EditorGUILayout.FloatField(m_BottomContent, newPadding.y);
-
- if (check.changed)
- {
- m_Padding.vector4Value = newPadding;
- }
- EditorGUI.indentLevel--;
- }
- }
- }
- }
|