diff --git a/Assets/Fungus/FungusScript/Editor/FungusScriptEditor.cs b/Assets/Fungus/FungusScript/Editor/FungusScriptEditor.cs index 8e41d077..a06a6199 100644 --- a/Assets/Fungus/FungusScript/Editor/FungusScriptEditor.cs +++ b/Assets/Fungus/FungusScript/Editor/FungusScriptEditor.cs @@ -12,7 +12,7 @@ namespace Fungus { SerializedProperty stepTimeProp; SerializedProperty startSequenceProp; - SerializedProperty startAutomaticallyProp; + SerializedProperty executeOnStartProp; SerializedProperty colorCommandsProp; SerializedProperty showSequenceObjectsProp; SerializedProperty variablesProp; @@ -21,7 +21,7 @@ namespace Fungus { stepTimeProp = serializedObject.FindProperty("stepTime"); startSequenceProp = serializedObject.FindProperty("startSequence"); - startAutomaticallyProp = serializedObject.FindProperty("startAutomatically"); + executeOnStartProp = serializedObject.FindProperty("executeOnStart"); colorCommandsProp = serializedObject.FindProperty("colorCommands"); showSequenceObjectsProp = serializedObject.FindProperty("showSequenceObjects"); variablesProp = serializedObject.FindProperty("variables"); @@ -66,7 +66,7 @@ namespace Fungus EditorGUILayout.LabelField(new GUIContent("Error: Please select a Start Sequence"), style); } - EditorGUILayout.PropertyField(startAutomaticallyProp, new GUIContent("Start Automatically", "Start this Fungus Script when the scene starts.")); + EditorGUILayout.PropertyField(executeOnStartProp, new GUIContent("Execute On Start", "Execute this Fungus Script when the scene starts.")); EditorGUILayout.PropertyField(colorCommandsProp, new GUIContent("Color Commands", "Display commands using colors in editor window.")); diff --git a/Assets/Fungus/FungusScript/Scripts/FungusScript.cs b/Assets/Fungus/FungusScript/Scripts/FungusScript.cs index 14776f94..8e16c2fa 100644 --- a/Assets/Fungus/FungusScript/Scripts/FungusScript.cs +++ b/Assets/Fungus/FungusScript/Scripts/FungusScript.cs @@ -9,45 +9,88 @@ namespace Fungus public class FungusScript : MonoBehaviour { + /** + * Currently executing sequence. + */ [System.NonSerialized] public Sequence executingSequence; + /** + * Copy and paste buffer for command objects. + */ [System.NonSerialized] public Command copyCommand; + /** + * Scroll position of Fungus Script editor window (map view). + */ [HideInInspector] public Vector2 scriptScrollPos; + /** + * Scroll position of Fungus Script editor window (command view). + */ [HideInInspector] public Vector2 commandScrollPos; + /** + * Current width of command view + */ [HideInInspector] - public float commandViewWidth = 300; + public float commandViewWidth = 350; + /** + * Execution speed when running the script in the editor. Pauses on each command to help visualise execution order. + */ public float stepTime; - + + /** + * First sequence to execute when the Fungus Script executes. + */ public Sequence startSequence; + /** + * Currently selected sequence in the Fungus Script editor. + */ public Sequence selectedSequence; + /** + * Currently selected command in the Fungus Script editor. + */ public Command selectedCommand; - public bool startAutomatically = true; + /** + * Execute this Fungus Script when the scene starts. + */ + public bool executeOnStart = true; + /** + * Use command color when displaying command list in Fungus Editor window. + */ public bool colorCommands = true; + /** + * Show the sequence game objects in the Hierarchy view. + * This can be useful if you want to inspect the child gameobjects and components that make up the Fungus Script. + */ public bool showSequenceObjects = false; + /** + * The list of variables that can be accessed by the Fungus Script. + */ public List variables = new List(); void Start() { - if (startAutomatically) + if (executeOnStart) { Execute(); } } + /** + * Create a new sequence node which you can then add commands to. + */ public Sequence CreateSequence(Vector2 position) { GameObject go = new GameObject("Sequence"); @@ -59,6 +102,9 @@ namespace Fungus return s; } + /** + * Start running the Fungus Script by executing the startSequence. + */ public void Execute() { if (startSequence == null) @@ -69,9 +115,14 @@ namespace Fungus ExecuteSequence(startSequence); } + /** + * Start running the Fungus Script by executing a specific child sequence. + */ public void ExecuteSequence(Sequence sequence) { - if (sequence == null) + // Sequence must be a child of the parent Fungus Script + if (sequence == null || + sequence.transform.parent != transform) { return; } @@ -81,6 +132,9 @@ namespace Fungus sequence.ExecuteNextCommand(); } + /** + * Returns a new variable key that is guaranteed not to clash with any existing variable in the list. + */ public string GetUniqueVariableKey(string originalKey, Variable ignoreVariable = null) { int suffix = 0; @@ -126,6 +180,9 @@ namespace Fungus } } + /** + * Set the sequence objects to be hidden or visible depending on the showSequenceObjects property. + */ public void UpdateHideFlags() { Sequence[] sequences = GetComponentsInChildren();