/// <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();
        }
Example #2
0
        /// <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);
        }