/// <summary> /// Draw the Editor GUI /// </summary> protected override void DrawGUI() { ShowHeaderGUI(); //EditorHelper.DrawDefaultInspector(serializedObject, new List<string>() { "m_Script", "_animateChanges" }); EditorGUILayout.PropertyField(DelayProperty); EditorGUILayout.PropertyField(_durationProperty); TransitionBaseEditor.ShowTransitionType(_transitionTypeProperty, _animationCurveProperty); EditorGUILayout.PropertyField(_loopModeProperty); EditorGUI.indentLevel++; GUILayout.Space(5); _timeUpdateMethodProperty.isExpanded = EditorGUILayout.Foldout(_timeUpdateMethodProperty.isExpanded, new GUIContent("Advanced")); if (_timeUpdateMethodProperty.isExpanded) { EditorGUILayout.PropertyField(_timeUpdateMethodProperty); } //_onTransitionStartProperty.isExpanded = EditorGUILayout.Foldout(_onTransitionStartProperty.isExpanded, new GUIContent("Events")); //if (_onTransitionStartProperty.isExpanded) //{ // EditorGUILayout.BeginHorizontal(); // GUILayout.Space(15f); // EditorGUILayout.BeginVertical(); // EditorGUILayout.PropertyField(_onTransitionStartProperty); // EditorGUILayout.PropertyField(_onTransitionUpdateProperty); // EditorGUILayout.PropertyField(_onTransitionCompleteProperty); // EditorGUILayout.EndVertical(); // EditorGUILayout.EndHorizontal(); //} EditorGUI.indentLevel--; GUILayout.Space(3f); ShowFooterGUI(); }
/// <summary> /// Draw the Editor GUI /// </summary> public override bool OnGUI() { var playMakerTransitionBase = target as PlayMakerTransitionBase; ShowHeaderGUI(); //EditorHelper.DrawDefaultInspector(serializedObject, new List<string>() { "m_Script", "_animateChanges" }); EditField("Delay"); EditField("Duration"); EditField("TransitionType"); if ((TransitionHelper.TweenType)playMakerTransitionBase.TransitionType.Value == TransitionHelper.TweenType.none) { EditorGUI.indentLevel += 1; EditorGUILayout.HelpBox("This transition will be ignored!", MessageType.Info); EditorGUI.indentLevel -= 1; } else if ((TransitionHelper.TweenType)playMakerTransitionBase.TransitionType.Value == TransitionHelper.TweenType.AnimationCurve) { EditorGUI.indentLevel += 1; EditorGUILayout.HelpBox("Custom animation curve with absolute values.\nClick the curve below to edit.", MessageType.None); EditField("AnimationCurve"); //EditorGUILayout.PropertyField(animationCurveProperty, GUIContent.none, GUILayout.MinHeight(EditorGUIUtility.singleLineHeight * 4)); EditorGUI.indentLevel -= 1; } else { EditorGUI.indentLevel += 1; var easingFunction = TransitionHelper.GetTweenFunction((TransitionHelper.TweenType)playMakerTransitionBase.TransitionType.Value); if (easingFunction == null) { // should never happen, but worth checking EditorGUILayout.HelpBox("Curve not found! Please report this error.", MessageType.Error); } else { EditorGUILayout.HelpBox("Fixed Transition Curve.", MessageType.None); TransitionBaseEditor.DrawTweenPreview(easingFunction); EditorGUI.indentLevel -= 1; } } GUILayout.Space(5); _showAdvancedSettings = EditorGUILayout.Foldout(_showAdvancedSettings, new GUIContent("Advanced")); if (_showAdvancedSettings) { EditorGUI.indentLevel += 1; EditField("TimeUpdateMethod"); EditorGUI.indentLevel -= 1; } _showEvents = EditorGUILayout.Foldout(_showEvents, new GUIContent("Events")); if (_showEvents) { EditorGUILayout.BeginHorizontal(); GUILayout.Space(15f); EditorGUILayout.BeginVertical(); // Below doesn't seem to work in PlayMaker Action Editor //EditField("OnTransitionStart"); //EditField("OnTransitionUpdate"); //EditField("OnTransitionComplete"); EditField("TransitionStartEvent"); EditField("TransitionCompleteEvent"); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); } GUILayout.Space(3f); ShowFooterGUI(); return(GUI.changed); }