public override void OnSRPGCKInspectorGUI()
{
arb.formulae = EditorGUILayout.ObjectField("Formulae", arb.formulae, typeof(Formulae), !EditorUtility.IsPersistent(arb)) as Formulae;
//teams
int newTeamCount = EditorGUILayout.IntField("Teams", arb.EditorGetTeamCount());
if (newTeamCount < 1)
{
newTeamCount = 1;
}
while (newTeamCount > arb.EditorGetTeamCount())
{
int id = 1;
while (arb.EditorGetTeam(id) != null)
{
id++;
}
var tgo = new GameObject();
tgo.transform.parent = arb.transform;
tgo.transform.localPosition = Vector3.zero;
tgo.transform.localRotation = Quaternion.identity;
tgo.transform.localScale = new Vector3(1, 1, 1);
var t = tgo.AddComponent <Team>();
t.id = id;
tgo.name = "Team " + id;
}
var sorted = arb.EditorGetTeams().ToList();
while (newTeamCount < arb.EditorGetTeamCount() && sorted.Count > 0)
{
var t = sorted[sorted.Count - 1];
DestroyImmediate(t.gameObject);
sorted.RemoveAt(sorted.Count - 1);
}
//local/ai/network toggle grid
EditorGUILayout.BeginHorizontal();
EditorGUILayout.BeginVertical();
//labels
GUILayout.Label("Team:", GUILayout.Width(64), GUILayout.Height(18));
GUILayout.Label("Local", GUILayout.Width(64), GUILayout.Height(18));
GUILayout.Label("AI", GUILayout.Width(64), GUILayout.Height(18));
GUILayout.Label("Network", GUILayout.Width(64), GUILayout.Height(18));
EditorGUILayout.EndVertical();
teamScroll = EditorGUILayout.BeginScrollView(teamScroll, false, false, GUILayout.Height(90));
EditorGUILayout.BeginHorizontal();
foreach (var t in arb.EditorGetTeams())
{
EditorGUILayout.BeginVertical();
if (GUILayout.Button("" + t.id, GUILayout.Width(32), GUILayout.Height(16)))
{
EditorGUILayout.EndVertical();
EditorGUILayout.EndHorizontal();
EditorGUILayout.EndHorizontal();
EditorUtility.FocusProjectWindow();
Selection.activeObject = t;
return;
}
EditorGUILayout.BeginHorizontal();
GUILayout.Space(12);
EditorGUILayout.BeginVertical();
//radio boxes
bool local = t.type == TeamLocation.Local;
bool ai = t.type == TeamLocation.AI;
bool network = t.type == TeamLocation.Network;
if (local = EditorGUILayout.Toggle(local, EditorStyles.radioButton, GUILayout.Width(16), GUILayout.Height(16)))
{
t.type = TeamLocation.Local;
ai = false;
network = false;
}
if (ai = EditorGUILayout.Toggle(ai, EditorStyles.radioButton, GUILayout.Width(16), GUILayout.Height(16)))
{
t.type = TeamLocation.AI;
network = false;
}
if (network = EditorGUILayout.Toggle(network, EditorStyles.radioButton, GUILayout.Width(16), GUILayout.Height(16)))
{
t.type = TeamLocation.Network;
}
GUILayout.FlexibleSpace();
EditorGUILayout.EndVertical();
// GUILayout.Space(6);
EditorGUILayout.EndHorizontal();
EditorGUILayout.EndVertical();
}
EditorGUILayout.EndHorizontal();
EditorGUILayout.EndScrollView();
GUILayout.FlexibleSpace();
EditorGUILayout.EndHorizontal();
}