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);
        }
Ejemplo n.º 2
0
        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();
        }