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(); }
/// <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(); }