NStarPolygonPropertyDrawer.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233
  1. using UnityEditor;
  2. using UnityEngine;
  3. namespace MPUIKIT.Editor {
  4. [CustomPropertyDrawer(typeof(NStarPolygon))]
  5. public class NStarPolygonPropertyDrawer : PropertyDrawer {
  6. public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) {
  7. EditorGUI.BeginProperty(position, label, property);
  8. {
  9. SerializedProperty sideCount = property.FindPropertyRelative("m_SideCount");
  10. SerializedProperty inset = property.FindPropertyRelative("m_Inset");
  11. SerializedProperty cornerRadius = property.FindPropertyRelative("m_CornerRadius");
  12. SerializedProperty offset = property.FindPropertyRelative("m_Offset");
  13. Rect line = position;
  14. line.height = EditorGUIUtility.singleLineHeight;
  15. EditorGUI.Slider(line, sideCount, 3f, 10f);
  16. line.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
  17. EditorGUI.Slider(line, inset, 2f, sideCount.floatValue - 0.01f);
  18. line.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
  19. EditorGUI.PropertyField(line, cornerRadius);
  20. line.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
  21. EditorGUI.PropertyField(line, offset);
  22. }
  23. EditorGUI.EndProperty();
  24. }
  25. public override float GetPropertyHeight(SerializedProperty property, GUIContent label) {
  26. return EditorGUIUtility.singleLineHeight * 4.5f + EditorGUIUtility.standardVerticalSpacing * 4;
  27. }
  28. }
  29. }