IndieGame/client/Packages/com.unity.ugui@1.0.0/Editor/UI/RectMask2DEditor.cs

68 lines
2.3 KiB
C#
Raw Normal View History

2024-10-11 10:12:15 +08:00
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--;
}
}
}
}