diff --git a/Assets/Fungus/Editor/FungusScript/FungusScriptEditor.cs b/Assets/Fungus/Editor/FungusScript/FungusScriptEditor.cs index e60027b9..c31c07db 100644 --- a/Assets/Fungus/Editor/FungusScript/FungusScriptEditor.cs +++ b/Assets/Fungus/Editor/FungusScript/FungusScriptEditor.cs @@ -67,15 +67,24 @@ namespace Fungus.Script EditorGUILayout.LabelField(new GUIContent("Error: Please select a Start Sequence"), style); } - ReorderableListGUI.Title("Variables"); + serializedObject.ApplyModifiedProperties(); + } + + public void DrawVariablesGUI() + { + serializedObject.Update(); + FungusScript t = target as FungusScript; + + ReorderableListGUI.Title("Variables"); + VariableListAdaptor adaptor = new VariableListAdaptor(variablesProperty, 0); ReorderableListControl.DrawControlFromState(adaptor, null, ReorderableListFlags.DisableContextMenu | ReorderableListFlags.HideAddButton); - + GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); - if (GUILayout.Button("Add Variable")) + if (!Application.isPlaying && GUILayout.Button("Add Variable")) { GenericMenu menu = new GenericMenu (); diff --git a/Assets/Fungus/Editor/FungusScript/VariableList.cs b/Assets/Fungus/Editor/FungusScript/VariableList.cs index 8809a865..87320b2a 100644 --- a/Assets/Fungus/Editor/FungusScript/VariableList.cs +++ b/Assets/Fungus/Editor/FungusScript/VariableList.cs @@ -134,11 +134,41 @@ namespace Fungus.Script GUI.Label(typeRect, type); EditorGUI.BeginChangeCheck(); - - string key = EditorGUI.TextField(keyRect, variable.key); + + string key = variable.key; + + if (Application.isPlaying) + { + const float w = 100; + Rect valueRect = keyRect; + keyRect.width = w; + valueRect.x += w; + valueRect.width -= w; + key = EditorGUI.TextField(keyRect, variable.key); + if (variable.GetType() == typeof(BooleanVariable)) + { + EditorGUI.Toggle(valueRect, (variable as BooleanVariable).Value); + } + else if (variable.GetType() == typeof(IntegerVariable)) + { + EditorGUI.IntField(valueRect, (variable as IntegerVariable).Value); + } + else if (variable.GetType() == typeof(FloatVariable)) + { + EditorGUI.FloatField(valueRect, (variable as FloatVariable).Value); + } + else if (variable.GetType() == typeof(StringVariable)) + { + EditorGUI.TextField(valueRect, (variable as StringVariable).Value); + } + } + else + { + key = EditorGUI.TextField(keyRect, variable.key); + } VariableScope scope = (VariableScope)EditorGUI.EnumPopup(scopeRect, variable.scope); - + if (EditorGUI.EndChangeCheck ()) { Undo.RecordObject(variable, "Set Variable"); diff --git a/Assets/Fungus/Editor/FungusScript/VariablesWindow.cs b/Assets/Fungus/Editor/FungusScript/VariablesWindow.cs index 589df5f6..5c2fe005 100644 --- a/Assets/Fungus/Editor/FungusScript/VariablesWindow.cs +++ b/Assets/Fungus/Editor/FungusScript/VariablesWindow.cs @@ -50,6 +50,11 @@ namespace Fungus.Script } } + FungusScriptEditor fungusScriptEditor = Editor.CreateEditor(fungusScript) as FungusScriptEditor; + fungusScriptEditor.DrawVariablesGUI(); + + /* + bool showValues = Application.isPlaying; float columnWidth = (position.width - 40) / (showValues ? 4 : 3); @@ -131,6 +136,7 @@ namespace Fungus.Script GUILayout.EndHorizontal(); } GUILayout.EndScrollView(); + */ } } diff --git a/Assets/Shuttle/ShuttleGame.unity b/Assets/Shuttle/ShuttleGame.unity index ad18bb6c..dd0c2aae 100644 Binary files a/Assets/Shuttle/ShuttleGame.unity and b/Assets/Shuttle/ShuttleGame.unity differ