Пример #1
0
        public override void OnInspectorGUI()
        {
            base.serializedObject.Update();
            EditorGUILayout.PropertyField(this.m_InteractableProperty, new GUILayoutOption[0]);
            Selectable.Transition transition = SelectableEditor.GetTransition(this.m_TransitionProperty);
            Graphic graphic = this.m_TargetGraphicProperty.objectReferenceValue as Graphic;

            if (graphic == null)
            {
                graphic = (base.target as Selectable).GetComponent <Graphic>();
            }
            Animator animator = (base.target as Selectable).GetComponent <Animator>();

            this.m_ShowColorTint.target       = (!this.m_TransitionProperty.hasMultipleDifferentValues && transition == Selectable.Transition.ColorTint);
            this.m_ShowSpriteTrasition.target = (!this.m_TransitionProperty.hasMultipleDifferentValues && transition == Selectable.Transition.SpriteSwap);
            this.m_ShowAnimTransition.target  = (!this.m_TransitionProperty.hasMultipleDifferentValues && transition == Selectable.Transition.Animation);
            EditorGUILayout.PropertyField(this.m_TransitionProperty, new GUILayoutOption[0]);
            EditorGUI.indentLevel++;
            if (transition == Selectable.Transition.ColorTint || transition == Selectable.Transition.SpriteSwap)
            {
                EditorGUILayout.PropertyField(this.m_TargetGraphicProperty, new GUILayoutOption[0]);
            }
            if (transition != Selectable.Transition.ColorTint)
            {
                if (transition == Selectable.Transition.SpriteSwap)
                {
                    if (graphic as Image == null)
                    {
                        EditorGUILayout.HelpBox("You must have a Image target in order to use a sprite swap transition.", MessageType.Warning);
                    }
                }
            }
            else if (graphic == null)
            {
                EditorGUILayout.HelpBox("You must have a Graphic target in order to use a color transition.", MessageType.Warning);
            }
            if (EditorGUILayout.BeginFadeGroup(this.m_ShowColorTint.faded))
            {
                EditorGUILayout.PropertyField(this.m_ColorBlockProperty, new GUILayoutOption[0]);
            }
            EditorGUILayout.EndFadeGroup();
            if (EditorGUILayout.BeginFadeGroup(this.m_ShowSpriteTrasition.faded))
            {
                EditorGUILayout.PropertyField(this.m_SpriteStateProperty, new GUILayoutOption[0]);
            }
            EditorGUILayout.EndFadeGroup();
            if (EditorGUILayout.BeginFadeGroup(this.m_ShowAnimTransition.faded))
            {
                EditorGUILayout.PropertyField(this.m_AnimTriggerProperty, new GUILayoutOption[0]);
                if (animator == null || animator.runtimeAnimatorController == null)
                {
                    Rect controlRect = EditorGUILayout.GetControlRect(new GUILayoutOption[0]);
                    controlRect.xMin += EditorGUIUtility.labelWidth;
                    if (GUI.Button(controlRect, "Auto Generate Animation", EditorStyles.miniButton))
                    {
                        AnimatorController animatorController = SelectableEditor.GenerateSelectableAnimatorContoller((base.target as Selectable).animationTriggers, base.target as Selectable);
                        if (animatorController != null)
                        {
                            if (animator == null)
                            {
                                animator = (base.target as Selectable).gameObject.AddComponent <Animator>();
                            }
                            AnimatorController.SetAnimatorController(animator, animatorController);
                        }
                    }
                }
            }
            EditorGUILayout.EndFadeGroup();
            EditorGUI.indentLevel--;
            EditorGUILayout.Space();
            EditorGUILayout.PropertyField(this.m_NavigationProperty, new GUILayoutOption[0]);
            EditorGUI.BeginChangeCheck();
            Rect controlRect2 = EditorGUILayout.GetControlRect(new GUILayoutOption[0]);

            controlRect2.xMin += EditorGUIUtility.labelWidth;
            SelectableEditor.s_ShowNavigation = GUI.Toggle(controlRect2, SelectableEditor.s_ShowNavigation, this.m_VisualizeNavigation, EditorStyles.miniButton);
            if (EditorGUI.EndChangeCheck())
            {
                EditorPrefs.SetBool(SelectableEditor.s_ShowNavigationKey, SelectableEditor.s_ShowNavigation);
                SceneView.RepaintAll();
            }
            this.ChildClassPropertiesGUI();
            base.serializedObject.ApplyModifiedProperties();
        }
Пример #2
0
        /// <summary>
        ///   <para>See Editor.OnInspectorGUI.</para>
        /// </summary>
        public override void OnInspectorGUI()
        {
            this.serializedObject.Update();
            if (!this.IsDerivedSelectableEditor())
            {
                EditorGUILayout.PropertyField(this.m_Script);
            }
            EditorGUILayout.PropertyField(this.m_InteractableProperty);
            Selectable.Transition transition = SelectableEditor.GetTransition(this.m_TransitionProperty);
            Graphic graphic = this.m_TargetGraphicProperty.objectReferenceValue as Graphic;

            if ((UnityEngine.Object)graphic == (UnityEngine.Object)null)
            {
                graphic = (this.target as Selectable).GetComponent <Graphic>();
            }
            Animator behavior = (this.target as Selectable).GetComponent <Animator>();

            this.m_ShowColorTint.target       = !this.m_TransitionProperty.hasMultipleDifferentValues && transition == Selectable.Transition.ColorTint;
            this.m_ShowSpriteTrasition.target = !this.m_TransitionProperty.hasMultipleDifferentValues && transition == Selectable.Transition.SpriteSwap;
            this.m_ShowAnimTransition.target  = !this.m_TransitionProperty.hasMultipleDifferentValues && transition == Selectable.Transition.Animation;
            EditorGUILayout.PropertyField(this.m_TransitionProperty);
            ++EditorGUI.indentLevel;
            if (transition == Selectable.Transition.ColorTint || transition == Selectable.Transition.SpriteSwap)
            {
                EditorGUILayout.PropertyField(this.m_TargetGraphicProperty);
            }
            switch (transition)
            {
            case Selectable.Transition.ColorTint:
                if ((UnityEngine.Object)graphic == (UnityEngine.Object)null)
                {
                    EditorGUILayout.HelpBox("You must have a Graphic target in order to use a color transition.", MessageType.Warning);
                    break;
                }
                break;

            case Selectable.Transition.SpriteSwap:
                if ((UnityEngine.Object)(graphic as Image) == (UnityEngine.Object)null)
                {
                    EditorGUILayout.HelpBox("You must have a Image target in order to use a sprite swap transition.", MessageType.Warning);
                    break;
                }
                break;
            }
            if (EditorGUILayout.BeginFadeGroup(this.m_ShowColorTint.faded))
            {
                EditorGUILayout.PropertyField(this.m_ColorBlockProperty);
            }
            EditorGUILayout.EndFadeGroup();
            if (EditorGUILayout.BeginFadeGroup(this.m_ShowSpriteTrasition.faded))
            {
                EditorGUILayout.PropertyField(this.m_SpriteStateProperty);
            }
            EditorGUILayout.EndFadeGroup();
            if (EditorGUILayout.BeginFadeGroup(this.m_ShowAnimTransition.faded))
            {
                EditorGUILayout.PropertyField(this.m_AnimTriggerProperty);
                if ((UnityEngine.Object)behavior == (UnityEngine.Object)null || (UnityEngine.Object)behavior.runtimeAnimatorController == (UnityEngine.Object)null)
                {
                    Rect controlRect = EditorGUILayout.GetControlRect();
                    controlRect.xMin += EditorGUIUtility.labelWidth;
                    if (GUI.Button(controlRect, "Auto Generate Animation", EditorStyles.miniButton))
                    {
                        AnimatorController animatorContoller = SelectableEditor.GenerateSelectableAnimatorContoller((this.target as Selectable).animationTriggers, this.target as Selectable);
                        if ((UnityEngine.Object)animatorContoller != (UnityEngine.Object)null)
                        {
                            if ((UnityEngine.Object)behavior == (UnityEngine.Object)null)
                            {
                                behavior = (this.target as Selectable).gameObject.AddComponent <Animator>();
                            }
                            AnimatorController.SetAnimatorController(behavior, animatorContoller);
                        }
                    }
                }
            }
            EditorGUILayout.EndFadeGroup();
            --EditorGUI.indentLevel;
            EditorGUILayout.Space();
            EditorGUILayout.PropertyField(this.m_NavigationProperty);
            EditorGUI.BeginChangeCheck();
            Rect controlRect1 = EditorGUILayout.GetControlRect();

            controlRect1.xMin += EditorGUIUtility.labelWidth;
            SelectableEditor.s_ShowNavigation = GUI.Toggle(controlRect1, SelectableEditor.s_ShowNavigation, this.m_VisualizeNavigation, EditorStyles.miniButton);
            if (EditorGUI.EndChangeCheck())
            {
                EditorPrefs.SetBool(SelectableEditor.s_ShowNavigationKey, SelectableEditor.s_ShowNavigation);
                SceneView.RepaintAll();
            }
            this.ChildClassPropertiesGUI();
            this.serializedObject.ApplyModifiedProperties();
        }