using UnityEditor; using UnityEngine; namespace PigeonCoopToolkit.Utillities.Editor { [CustomPropertyDrawer(typeof(Range))] public class RangePropertyDrawer : PropertyDrawer { public override void OnGUI(UnityEngine.Rect position, SerializedProperty property, UnityEngine.GUIContent label) { SerializedProperty Min = property.FindPropertyRelative("Min"); SerializedProperty Max = property.FindPropertyRelative("Max"); Vector2 newMinMax = Vector2.zero; position.height = 16; EditorGUI.LabelField(position, label); position.y += 20; position.width = position.width / 2; newMinMax.x = EditorGUI.FloatField(position, "Min", Min.floatValue); position.x += position.width; newMinMax.y = EditorGUI.FloatField(position, "Max", Max.floatValue); if (newMinMax.x > newMinMax.y) newMinMax.x = newMinMax.y; Min.floatValue = newMinMax.x; Max.floatValue = newMinMax.y; } public override float GetPropertyHeight(SerializedProperty property, GUIContent label) { return base.GetPropertyHeight(property, label) + 20; } } }