protected static void ShowSequenceInspector(FungusScript fungusScript) { if (sequenceInspector == null) { // Create a Scriptable Object with a custom editor which we can use to inspect the selected sequence. // Editors for Scriptable Objects display using the full height of the inspector window. sequenceInspector = ScriptableObject.CreateInstance <SequenceInspector>() as SequenceInspector; sequenceInspector.hideFlags = HideFlags.DontSave; } Selection.activeObject = sequenceInspector; EditorUtility.SetDirty(sequenceInspector); }
public override void OnInspectorGUI() { SequenceInspector sequenceInspector = target as SequenceInspector; Sequence sequence = sequenceInspector.sequence; if (sequence == null) { return; } FungusScript fungusScript = sequence.GetFungusScript(); SequenceEditor sequenceEditor = Editor.CreateEditor(sequence) as SequenceEditor; sequenceEditor.DrawSequenceGUI(fungusScript); DestroyImmediate(sequenceEditor); Command inspectCommand = null; if (fungusScript.selectedCommands.Count == 1) { inspectCommand = fungusScript.selectedCommands[0]; } if (Application.isPlaying && inspectCommand != null && inspectCommand.parentSequence != sequence) { Repaint(); return; } if (inspectCommand != null) { CommandEditor commandEditor = Editor.CreateEditor(inspectCommand) as CommandEditor; commandEditor.DrawCommandInspectorGUI(); DestroyImmediate(commandEditor); } Repaint(); }