Aucune description
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

RectMask2DEditor.cs 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. namespace UnityEditor.UI
  4. {
  5. [CustomEditor(typeof(RectMask2D), true)]
  6. [CanEditMultipleObjects]
  7. /// <summary>
  8. /// Custom editor for the RectMask2d component.
  9. /// Extend this class to write a custom editor for a component derived from Mask.
  10. /// </summary>
  11. public class RectMask2DEditor : Editor
  12. {
  13. SerializedProperty m_Padding;
  14. SerializedProperty m_Softness;
  15. GUIContent m_PaddingContent;
  16. GUIContent m_LeftContent;
  17. GUIContent m_RightContent;
  18. GUIContent m_TopContent;
  19. GUIContent m_BottomContent;
  20. static private bool m_ShowOffsets = false;
  21. protected virtual void OnEnable()
  22. {
  23. m_PaddingContent = EditorGUIUtility.TrTextContent("Padding");
  24. m_LeftContent = EditorGUIUtility.TrTextContent("Left");
  25. m_RightContent = EditorGUIUtility.TrTextContent("Right");
  26. m_TopContent = EditorGUIUtility.TrTextContent("Top");
  27. m_BottomContent = EditorGUIUtility.TrTextContent("Bottom");
  28. m_Padding = serializedObject.FindProperty("m_Padding");
  29. m_Softness = serializedObject.FindProperty("m_Softness");
  30. }
  31. public override void OnInspectorGUI()
  32. {
  33. m_ShowOffsets = EditorGUILayout.Foldout(m_ShowOffsets, m_PaddingContent, true);
  34. if (m_ShowOffsets)
  35. OffsetGUI();
  36. EditorGUILayout.PropertyField(m_Softness);
  37. serializedObject.ApplyModifiedProperties();
  38. }
  39. void OffsetGUI()
  40. {
  41. using (var check = new EditorGUI.ChangeCheckScope())
  42. {
  43. EditorGUI.indentLevel++;
  44. Vector4 newPadding = m_Padding.vector4Value;
  45. newPadding.x = EditorGUILayout.FloatField(m_LeftContent, newPadding.x);
  46. newPadding.z = EditorGUILayout.FloatField(m_RightContent, newPadding.z);
  47. newPadding.w = EditorGUILayout.FloatField(m_TopContent, newPadding.w);
  48. newPadding.y = EditorGUILayout.FloatField(m_BottomContent, newPadding.y);
  49. if (check.changed)
  50. {
  51. m_Padding.vector4Value = newPadding;
  52. }
  53. EditorGUI.indentLevel--;
  54. }
  55. }
  56. }
  57. }