Browse Source

Using ReordorableList in variables window

master
chrisgregan 11 years ago
parent
commit
0cdd661ab5
  1. 11
      Assets/Fungus/Editor/FungusScript/FungusScriptEditor.cs
  2. 32
      Assets/Fungus/Editor/FungusScript/VariableList.cs
  3. 6
      Assets/Fungus/Editor/FungusScript/VariablesWindow.cs
  4. BIN
      Assets/Shuttle/ShuttleGame.unity

11
Assets/Fungus/Editor/FungusScript/FungusScriptEditor.cs

@ -67,6 +67,15 @@ namespace Fungus.Script
EditorGUILayout.LabelField(new GUIContent("Error: Please select a Start Sequence"), style);
}
serializedObject.ApplyModifiedProperties();
}
public void DrawVariablesGUI()
{
serializedObject.Update();
FungusScript t = target as FungusScript;
ReorderableListGUI.Title("Variables");
VariableListAdaptor adaptor = new VariableListAdaptor(variablesProperty, 0);
@ -75,7 +84,7 @@ namespace Fungus.Script
GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
if (GUILayout.Button("Add Variable"))
if (!Application.isPlaying && GUILayout.Button("Add Variable"))
{
GenericMenu menu = new GenericMenu ();

32
Assets/Fungus/Editor/FungusScript/VariableList.cs

@ -135,7 +135,37 @@ namespace Fungus.Script
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);

6
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();
*/
}
}

BIN
Assets/Shuttle/ShuttleGame.unity

Binary file not shown.
Loading…
Cancel
Save