Browse Source

Variable window layout improvements

master
chrisgregan 11 years ago
parent
commit
e70517d52c
  1. 19
      Assets/Fungus/Editor/FungusScript/VariableList.cs
  2. 85
      Assets/Fungus/Editor/FungusScript/VariablesWindow.cs
  3. BIN
      Assets/Shuttle/ShuttleGame.unity

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

@ -100,7 +100,7 @@ namespace Fungus.Script
float width1 = 60;
float width3 = 50;
float width2 = position.width - width1 - width3;
float width2 = Mathf.Max(position.width - width1 - width3, 100);
Rect typeRect = position;
typeRect.width = width1;
@ -141,29 +141,34 @@ namespace Fungus.Script
{
const float w = 100;
Rect valueRect = keyRect;
keyRect.width = w;
keyRect.width = w - 5;
valueRect.x += w;
valueRect.width -= w;
valueRect.width -= (w + 5);
key = EditorGUI.TextField(keyRect, variable.key);
if (variable.GetType() == typeof(BooleanVariable))
{
EditorGUI.Toggle(valueRect, (variable as BooleanVariable).Value);
BooleanVariable v = variable as BooleanVariable;
v.Value = EditorGUI.Toggle(valueRect, v.Value);
}
else if (variable.GetType() == typeof(IntegerVariable))
{
EditorGUI.IntField(valueRect, (variable as IntegerVariable).Value);
IntegerVariable v = variable as IntegerVariable;
v.Value = EditorGUI.IntField(valueRect, v.Value);
}
else if (variable.GetType() == typeof(FloatVariable))
{
EditorGUI.FloatField(valueRect, (variable as FloatVariable).Value);
FloatVariable v = variable as FloatVariable;
v.Value = EditorGUI.FloatField(valueRect, v.Value);
}
else if (variable.GetType() == typeof(StringVariable))
{
EditorGUI.TextField(valueRect, (variable as StringVariable).Value);
StringVariable v = variable as StringVariable;
v.Value = EditorGUI.TextField(valueRect, v.Value);
}
}
else
{
keyRect.width -= 5;
key = EditorGUI.TextField(keyRect, variable.key);
}

85
Assets/Fungus/Editor/FungusScript/VariablesWindow.cs

@ -50,93 +50,12 @@ namespace Fungus.Script
}
}
scrollPos = GUILayout.BeginScrollView(scrollPos, GUILayout.MinWidth(Mathf.Max(position.width, 300)));
FungusScriptEditor fungusScriptEditor = Editor.CreateEditor(fungusScript) as FungusScriptEditor;
fungusScriptEditor.DrawVariablesGUI();
/*
bool showValues = Application.isPlaying;
float columnWidth = (position.width - 40) / (showValues ? 4 : 3);
scrollPos = GUILayout.BeginScrollView(scrollPos);
GUILayout.BeginHorizontal();
GUILayout.Label("Key", GUILayout.Width(columnWidth));
GUILayout.Label("Type", GUILayout.Width(columnWidth));
GUILayout.Label("Scope", GUILayout.Width(columnWidth));
if (showValues)
{
GUILayout.Label("Value", GUILayout.Width(columnWidth));
}
GUILayout.EndHorizontal();
GUIStyle boxStyle = new GUIStyle(GUI.skin.box);
boxStyle.margin.left = 0;
boxStyle.margin.right = 0;
boxStyle.margin.top = 0;
boxStyle.margin.bottom = 0;
List<FungusVariable> fsVariables = fungusScript.variables;
foreach (FungusVariable variable in fsVariables)
{
GUILayout.BeginHorizontal(boxStyle);
string keyString = variable.key;
string typeString = "";
string scopeString = "";
string valueString = "";
switch (variable.scope)
{
default:
case VariableScope.Local:
scopeString = "Local";
break;
case VariableScope.Global:
scopeString = "Global";
break;
}
if (variable.GetType() == typeof(BooleanVariable))
{
typeString = "Boolean";
valueString = (variable as BooleanVariable).Value ? "True" : "False";
}
else if (variable.GetType() == typeof(IntegerVariable))
{
typeString = "Integer";
valueString = (variable as IntegerVariable).Value.ToString();
}
else if (variable.GetType() == typeof(FloatVariable))
{
typeString = "Float";
valueString = (variable as FloatVariable).Value.ToString();
}
else if (variable.GetType() == typeof(StringVariable))
{
typeString = "String";
valueString = (variable as StringVariable).Value;
if (valueString == null ||
valueString.Length == 0)
{
valueString = "\"\"";
}
}
GUILayout.Label(keyString, GUILayout.Width(columnWidth));
GUILayout.Label(typeString, GUILayout.Width(columnWidth));
GUILayout.Label(scopeString, GUILayout.Width(columnWidth));
if (showValues)
{
GUILayout.Label(valueString, GUILayout.Width(columnWidth));
}
GUILayout.EndHorizontal();
}
GUILayout.EndScrollView();
*/
}
}

BIN
Assets/Shuttle/ShuttleGame.unity

Binary file not shown.
Loading…
Cancel
Save