public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        SerializedProperty clampModeProp = serializedObject.FindProperty("clampMode");

        GUI.changed = false;

        SOFloatClamped.ClampMode mode = (SOFloatClamped.ClampMode)clampModeProp.enumValueIndex;
        DrawMininmumAndMaximum(mode);

        if (mode == SOFloatClamped.ClampMode.MinimumAndMaximum)
        {
            DrawSlider();
        }
        else
        {
            DrawValueProperty();
        }

        if (GUI.changed)
        {
            serializedObject.ApplyModifiedProperties();
        }
    }
    private void DrawMininmumAndMaximum(SOFloatClamped.ClampMode mode)
    {
        switch (mode)
        {
        case SOFloatClamped.ClampMode.Minimum:
            DrawMinimum();
            break;

        case SOFloatClamped.ClampMode.Maximum:
            DrawMaximum();
            break;

        case SOFloatClamped.ClampMode.MinimumAndMaximum:
            DrawMinimum();
            DrawMaximum();
            break;

        case SOFloatClamped.ClampMode.Unclamped:
        default:
            break;
        }
    }