public override void OnInspectorGUI() { EditorGUILayout.PropertyField(trigger, new GUIContent("Trigger")); if (trigger.enumValueIndex >= (int)EmitterGameEvent.TriggerEnter && trigger.enumValueIndex <= (int)EmitterGameEvent.TriggerExit2D) { tag.stringValue = EditorGUILayout.TagField("Collision Tag", tag.stringValue); } EditorGUI.BeginChangeCheck(); var oldParam = param.stringValue; EditorGUILayout.PropertyField(param, new GUIContent("Parameter")); if (!String.IsNullOrEmpty(param.stringValue)) { if (!editorParamRef || param.stringValue != oldParam) { editorParamRef = EventManager.ParamFromPath(param.stringValue); } EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("Override Value"); value.floatValue = EditorGUILayout.Slider(value.floatValue, editorParamRef.Min, editorParamRef.Max); EditorGUILayout.EndHorizontal(); } serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { if (NotFoundWarning == null) { Texture warningIcon = EditorUtils.LoadImage("NotFound.png"); NotFoundWarning = new GUIContent("Parameter Not Found", warningIcon); } EditorGUILayout.PropertyField(trigger, new GUIContent("Trigger")); if (trigger.enumValueIndex >= (int)EmitterGameEvent.TriggerEnter && trigger.enumValueIndex <= (int)EmitterGameEvent.TriggerExit2D) { tag.stringValue = EditorGUILayout.TagField("Collision Tag", tag.stringValue); } EditorGUILayout.PropertyField(param, new GUIContent("Parameter")); if (param.stringValue != currentPath) { currentPath = param.stringValue; if (string.IsNullOrEmpty(param.stringValue)) { editorParamRef = null; } else { editorParamRef = EventManager.ParamFromPath(param.stringValue); value.floatValue = Mathf.Clamp(value.floatValue, editorParamRef.Min, editorParamRef.Max); } } if (editorParamRef != null) { using (new EditorGUILayout.HorizontalScope()) { EditorGUILayout.PrefixLabel("Override Value"); value.floatValue = EditorUtils.DrawParameterValueLayout(value.floatValue, editorParamRef); } } else { Rect rect = EditorGUILayout.GetControlRect(); rect.xMin += EditorGUIUtility.labelWidth; GUI.Label(rect, NotFoundWarning); } serializedObject.ApplyModifiedProperties(); }