public override void OnInspectorGUI() { HandleInitialization(true); if (animationPlayer.layers == null || animationPlayer.layers.Length == 0) { return; } EditorUtilities.Splitter(); DrawLayerSelection(); if (animationPlayer.layers.Length == 0) { return; //Deleted last layer in DrawLayerSelection } if (selectedState == -1 && animationPlayer.layers[selectedLayer].states.Count > 0) { selectedState.SetTo(0); //Handle adding a state for the first time. } GUILayout.Space(10f); DrawSelectedLayer(); GUILayout.Space(10f); EditorUtilities.Splitter(); var numStatesBefore = animationPlayer.layers[selectedLayer].states.Count; StateSelectionAndAdditionDrawer.Draw(animationPlayer, selectedLayer, selectedState, selectedEditMode, this); if (numStatesBefore != animationPlayer.layers[selectedLayer].states.Count) { Repaint(); return; } DrawSelectedState(); EditorUtilities.Splitter(); EditorGUILayout.LabelField("Default transition"); EditorUtilities.RecordUndo(animationPlayer, "Change default transition", () => { animationPlayer.defaultTransition = AnimationTransitionDrawer.DrawTransitionData(animationPlayer.defaultTransition); }); EditorUtilities.Splitter(); DrawRuntimeDebugData(); }
private void DrawSelectedState() { EditorGUILayout.BeginHorizontal(editLayerButton_Background); //Making tabbed views are hard! var editStatesRect = EditorUtilities.ReserveRect(); var editTransitionsRect = EditorUtilities.ReserveRect(); var eventsRect = EditorUtilities.ReserveRect(); var metaDataRect = EditorUtilities.ReserveRect(); EditorGUILayout.EndHorizontal(); DrawTabHeader(editStatesRect, "Clips", 0); DrawTabHeader(editTransitionsRect, "Transitions", 1); DrawTabHeader(eventsRect, "Events", 2); DrawTabHeader(metaDataRect, "Metadata", 3); EditorGUILayout.BeginVertical(editLayerStyle); GUILayout.Space(10f); switch ((AnimationPlayerEditMode)selectedEditMode) { case AnimationPlayerEditMode.States: StateDataDrawer.DrawStateData(animationPlayer, selectedLayer, selectedState, this); break; case AnimationPlayerEditMode.Transitions: AnimationTransitionDrawer.DrawTransitions(animationPlayer, selectedLayer, selectedState, selectedToState, allStateNames[selectedLayer]); break; case AnimationPlayerEditMode.Events: DrawEvents(); break; case AnimationPlayerEditMode.MetaData: metaDataDrawer.DrawMetaData(); break; } GUILayout.Space(20f); EditorGUILayout.EndVertical(); }