You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.3 KiB
67 lines
2.3 KiB
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--; |
|
} |
|
} |
|
} |
|
}
|
|
|