public static float FloatField(GUIContent label, float value, FloatChangeHandler change, FloatFailureHandler failure = null, FloatValidationHandler validate = null, params GUILayoutOption[] options) { EditorGUI.BeginChangeCheck(); value = EditorGUILayout.FloatField(label, value, options); if (EditorGUI.EndChangeCheck()) { FloatApplyChangeHandlers(value, change, failure, validate); } return(value); }
private static void FloatApplyChangeHandlers(float value, FloatChangeHandler change, FloatFailureHandler failure, FloatValidationHandler validate) { bool validated = (validate == null) ? true : validate(value); if (validated) { change(value); } else if (!validated && failure != null) { failure(); } }