| using UnityEngine; |
| using UnityEngine.UI; |
|
|
| namespace UnityEditor.UI |
| { |
| [CustomEditor(typeof(RectMask2D), true)] |
| [CanEditMultipleObjects] |
| |
| |
| |
| |
| 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--; |
| } |
| } |
| } |
| } |
|
|