public override void OnInspectorGUI() { serializedObject.Update(); RefreshEventRef(); var eventReference = serializedObject.FindProperty("eventReference"); var stopType = serializedObject.FindProperty("stopType"); const string EventReferenceLabel = "Event"; EditorUtils.DrawLegacyEvent(serializedObject.FindProperty("eventName"), EventReferenceLabel); EditorGUILayout.PropertyField(eventReference, new GUIContent(EventReferenceLabel)); EditorGUILayout.PropertyField(stopType, new GUIContent("Stop Mode")); DrawInitialParameterValues(); DrawParameterAutomations(); eventPlayable.OnValidate(); serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { var begin = serializedObject.FindProperty("PlayEvent"); var end = serializedObject.FindProperty("StopEvent"); var tag = serializedObject.FindProperty("CollisionTag"); var eventReference = serializedObject.FindProperty("EventReference"); var eventPath = eventReference.FindPropertyRelative("Path"); var fadeout = serializedObject.FindProperty("AllowFadeout"); var once = serializedObject.FindProperty("TriggerOnce"); var preload = serializedObject.FindProperty("Preload"); var overrideAtt = serializedObject.FindProperty("OverrideAttenuation"); var minDistance = serializedObject.FindProperty("OverrideMinDistance"); var maxDistance = serializedObject.FindProperty("OverrideMaxDistance"); EditorGUILayout.PropertyField(begin, new GUIContent("Play Event")); EditorGUILayout.PropertyField(end, new GUIContent("Stop Event")); if ((begin.enumValueIndex >= (int)EmitterGameEvent.TriggerEnter && begin.enumValueIndex <= (int)EmitterGameEvent.TriggerExit2D) || (end.enumValueIndex >= (int)EmitterGameEvent.TriggerEnter && end.enumValueIndex <= (int)EmitterGameEvent.TriggerExit2D)) { tag.stringValue = EditorGUILayout.TagField("Collision Tag", tag.stringValue); } EditorGUI.BeginChangeCheck(); const string EventReferenceLabel = "Event"; EditorUtils.DrawLegacyEvent(serializedObject.FindProperty("Event"), EventReferenceLabel); EditorGUILayout.PropertyField(eventReference, new GUIContent(EventReferenceLabel)); EditorEventRef editorEvent = EventManager.EventFromPath(eventPath.stringValue); if (EditorGUI.EndChangeCheck()) { EditorUtils.UpdateParamsOnEmitter(serializedObject, eventPath.stringValue); } // Attenuation if (editorEvent != null) { { EditorGUI.BeginDisabledGroup(editorEvent == null || !editorEvent.Is3D); EditorGUILayout.BeginHorizontal(); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(overrideAtt); if (EditorGUI.EndChangeCheck() || (minDistance.floatValue == -1 && maxDistance.floatValue == -1) // never been initialiased ) { minDistance.floatValue = editorEvent.MinDistance; maxDistance.floatValue = editorEvent.MaxDistance; } EditorGUI.BeginDisabledGroup(!overrideAtt.boolValue); EditorGUIUtility.labelWidth = 30; EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(minDistance, new GUIContent("Min")); if (EditorGUI.EndChangeCheck()) { minDistance.floatValue = Mathf.Clamp(minDistance.floatValue, 0, maxDistance.floatValue); } EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(maxDistance, new GUIContent("Max")); if (EditorGUI.EndChangeCheck()) { maxDistance.floatValue = Mathf.Max(minDistance.floatValue, maxDistance.floatValue); } EditorGUIUtility.labelWidth = 0; EditorGUI.EndDisabledGroup(); EditorGUILayout.EndHorizontal(); EditorGUI.EndDisabledGroup(); } parameterValueView.OnGUI(editorEvent, !eventReference.hasMultipleDifferentValues); fadeout.isExpanded = EditorGUILayout.Foldout(fadeout.isExpanded, "Advanced Controls"); if (fadeout.isExpanded) { EditorGUILayout.PropertyField(preload, new GUIContent("Preload Sample Data")); EditorGUILayout.PropertyField(fadeout, new GUIContent("Allow Fadeout When Stopping")); EditorGUILayout.PropertyField(once, new GUIContent("Trigger Once")); } } serializedObject.ApplyModifiedProperties(); }