From 0cdd661ab577c175c5958fc6721d68527928158e Mon Sep 17 00:00:00 2001 From: chrisgregan Date: Mon, 11 Aug 2014 18:49:36 +0100 Subject: [PATCH] Using ReordorableList in variables window --- .../Editor/FungusScript/FungusScriptEditor.cs | 15 ++++++-- .../Editor/FungusScript/VariableList.cs | 36 ++++++++++++++++-- .../Editor/FungusScript/VariablesWindow.cs | 6 +++ Assets/Shuttle/ShuttleGame.unity | Bin 81388 -> 80692 bytes 4 files changed, 51 insertions(+), 6 deletions(-) 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 ad18bb6c656899961a4da225b6359924d8c5eb2d..dd0c2aaecc8e376e60d97ee12eb367a6d2ed6e45 100644 GIT binary patch delta 1028 zcmZ9~OK1~87zgn0TUU$+NrZqG#k`tqVv>r)G|+=4MMT^2T&;OduJDEWxs}JN@f^sqg^IcC{t!_KeO0zTSOb97{;5^P;A`f%Eq9y_HGjRRLD4k6fpl^nq%Fg@C_pE5TLYf7^V9))FNM6($C zN9IOgE!cfWy;0cheb}4<+>pUzz?Z-rOqFfH|M9dICwhp!y_2`FCd|3$cUCUZIW4>1 zA}kMc)_ZS_h1p{b>wA8%1}D2$y=(h(bV?k}N=GP7C_tbcWJ!rZx) zU+hw?D=It+Yfty^j3UZzRz*u=m#FOJyy^3?$~&x&X8o+JA{Klc6!QW0nnge7Seyv5 zS7Za6GG~HZRX8C~dGJAmL*}C}XBFNizGxVditZs;;j3-#k T$9eYOg1n-X;JBGd@|^oGiZn23 delta 1288 zcmZA1Pe>F|90%~!C2B z!$8sV;9)yNmkuo&b18_rM5nz31|9lisVOOyCakr6-|oEF*@4-4^O@iKz4v}IZ>QJv zrHt+-%B&I}S|Xy&L>umu`_wWIPMuqRq$l11**^X8-tI0x(GA?|_8EYsVKLnQ%4V~p zxYoj=0irInf7%v=#f!{!y zYR7fJ2Exv`YbDR44a3^^2>Y)`95cX(FSM2FS0YNaK&F`XIK(_)THNRTw{K9YQ^&~chqSM zunE{z^i|dR=9^3OyPKSWi!!jt_${5S-c2;55iM-WpBGM==gnp!SAh-Aw~b7+5Z%Ne zstOlj)q9cu8 zzKXAHmjlW}?grJ4SP!eXl)WfU?vT4eHsmgnR~dWX$A0U5H4m`BZ-q$KphvS*G2~PC zdxYuZW-(dATe%6(S}lZ4Y8(=n(*d#KM~=w=cWWYA&bo+Ju}iE6*|S4_2x>O+15oWn zQDX48Fb%$~9d5t-Amf#7-8vZJ7>kMk8=^PDZt;w