public void DrawMainView() { var customStyle = new GUIStyle(); customStyle.alignment = TextAnchor.UpperCenter; customStyle.fontSize = 17; GUI.Label(new Rect(EditorGUILayout.GetControlRect().x, EditorGUILayout.GetControlRect().y, EditorGUILayout.GetControlRect().width, 30), "List of specialized classes:", customStyle); // Create color for each line GUIStyle gsLinePair = new GUIStyle(); gsLinePair.normal.background = MakeTextureColor.MakeTexture(600, 1, new Color(0.5f, 0.5f, 0.5f, 0.5f)); GUIStyle gsLineOdd = new GUIStyle(); gsLineOdd.normal.background = MakeTextureColor.MakeTexture(600, 1, new Color(0.5f, 0.5f, 0.5f, 0.0f)); EditorGUILayout.BeginVertical(); scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition); for (int i = 0; i < Database.Instance.specializedClasses.Count; i++) { SpecializedClass specializedClass = Database.Instance.specializedClasses[i]; // Changing line color if (i % 2 == 0) { GUILayout.BeginHorizontal(gsLinePair); } else { GUILayout.BeginHorizontal(gsLineOdd); } Rect rect = EditorGUILayout.GetControlRect(); GUI.Label(rect, specializedClass.name); if (Event.current.type == EventType.MouseUp && rect.Contains(Event.current.mousePosition)) { editor = Editor.CreateEditor(specializedClass); listSpecializedClass.index = Database.Instance.specializedClasses.IndexOf(specializedClass); } if (GUILayout.Button(new GUIContent("Edit"), GUILayout.Width(50))) { editor = Editor.CreateEditor(specializedClass); listSpecializedClass.index = Database.Instance.specializedClasses.IndexOf(specializedClass); } else if (GUILayout.Button(new GUIContent("Remove"), GUILayout.Width(90))) { removeSpecializedClass(specializedClass); } GUILayout.EndHorizontal(); } EditorGUILayout.EndScrollView(); EditorGUILayout.EndVertical(); }
public override void OnInspectorGUI() { // Create color for each line GUIStyle gsLinePair = new GUIStyle(); gsLinePair.normal.background = MakeTextureColor.MakeTexture(600, 1, new Color(0.5f, 0.5f, 0.5f, 0.5f)); GUIStyle gsLineOdd = new GUIStyle(); gsLineOdd.normal.background = MakeTextureColor.MakeTexture(600, 1, new Color(0.5f, 0.5f, 0.5f, 0.0f)); // Atributes GUILayout.BeginVertical("Box"); var titleStyle = new GUIStyle(); titleStyle.alignment = TextAnchor.UpperCenter; titleStyle.fontSize = 15; titleStyle.fontStyle = FontStyle.Bold; GUI.Label(new Rect(EditorGUILayout.GetControlRect().x, EditorGUILayout.GetControlRect().y, EditorGUILayout.GetControlRect().width, 30), "Attributes:", titleStyle); for (int i = 0; i < Database.Instance.attributes.Count; i++) { Attribute attribute = Database.Instance.attributes[i]; // Changing line color if (i % 2 == 0) { GUILayout.BeginHorizontal(gsLinePair); } else { GUILayout.BeginHorizontal(gsLineOdd); } Rect rect = EditorGUILayout.GetControlRect(); GUI.Label(rect, attribute.name); GUILayout.EndHorizontal(); } GUILayout.EndVertical(); // Tags GUILayout.BeginVertical("Box"); GUI.Label(new Rect(EditorGUILayout.GetControlRect().x, EditorGUILayout.GetControlRect().y, EditorGUILayout.GetControlRect().width, 30), "Tags:", titleStyle); for (int i = 0; i < Database.Instance.tags.Count; i++) { string tag = Database.Instance.tags[i].tagName; // Changing line color if (i % 2 == 0) { GUILayout.BeginHorizontal(gsLinePair); } else { GUILayout.BeginHorizontal(gsLineOdd); } Rect rect = EditorGUILayout.GetControlRect(); GUI.Label(rect, tag); GUILayout.EndHorizontal(); } GUILayout.EndVertical(); // Slot types GUILayout.BeginVertical("Box"); GUI.Label(new Rect(EditorGUILayout.GetControlRect().x, EditorGUILayout.GetControlRect().y, EditorGUILayout.GetControlRect().width, 30), "Slot types:", titleStyle); for (int i = 0; i < Database.Instance.slotTypes.Count; i++) { SlotType slotType = Database.Instance.slotTypes[i]; // Changing line color if (i % 2 == 0) { GUILayout.BeginHorizontal(gsLinePair); } else { GUILayout.BeginHorizontal(gsLineOdd); } Rect rect = EditorGUILayout.GetControlRect(); GUI.Label(rect, slotType.slotName); GUILayout.EndHorizontal(); } GUILayout.EndVertical(); // Items GUILayout.BeginVertical("Box"); GUI.Label(new Rect(EditorGUILayout.GetControlRect().x, EditorGUILayout.GetControlRect().y, EditorGUILayout.GetControlRect().width, 30), "Items:", titleStyle); for (int i = 0; i < Database.Instance.items.Count; i++) { Modifier item = Database.Instance.items[i]; // Changing line color if (i % 2 == 0) { GUILayout.BeginHorizontal(gsLinePair); } else { GUILayout.BeginHorizontal(gsLineOdd); } Rect rect = EditorGUILayout.GetControlRect(); GUI.Label(rect, item.name); GUILayout.EndHorizontal(); } GUILayout.EndVertical(); // Specialized classes GUILayout.BeginVertical("Box"); GUI.Label(new Rect(EditorGUILayout.GetControlRect().x, EditorGUILayout.GetControlRect().y, EditorGUILayout.GetControlRect().width, 30), "Specialized classes:", titleStyle); for (int i = 0; i < Database.Instance.specializedClasses.Count; i++) { SpecializedClass specializedClass = Database.Instance.specializedClasses[i]; // Changing line color if (i % 2 == 0) { GUILayout.BeginHorizontal(gsLinePair); } else { GUILayout.BeginHorizontal(gsLineOdd); } Rect rect = EditorGUILayout.GetControlRect(); GUI.Label(rect, specializedClass.name); GUILayout.EndHorizontal(); } GUILayout.EndVertical(); // Characters GUILayout.BeginVertical("Box"); GUI.Label(new Rect(EditorGUILayout.GetControlRect().x, EditorGUILayout.GetControlRect().y, EditorGUILayout.GetControlRect().width, 30), "Characters:", titleStyle); for (int i = 0; i < Database.Instance.characters.Count; i++) { Character character = Database.Instance.characters[i]; // Changing line color if (i % 2 == 0) { GUILayout.BeginHorizontal(gsLinePair); } else { GUILayout.BeginHorizontal(gsLineOdd); } Rect rect = EditorGUILayout.GetControlRect(); GUI.Label(rect, character.name); GUILayout.EndHorizontal(); } GUILayout.EndVertical(); // Teams GUILayout.BeginVertical("Box"); GUI.Label(new Rect(EditorGUILayout.GetControlRect().x, EditorGUILayout.GetControlRect().y, EditorGUILayout.GetControlRect().width, 30), "Teams:", titleStyle); for (int i = 0; i < Database.Instance.teams.Count; i++) { Team team = Database.Instance.teams[i]; // Changing line color if (i % 2 == 0) { GUILayout.BeginHorizontal(gsLinePair); } else { GUILayout.BeginHorizontal(gsLineOdd); } Rect rect = EditorGUILayout.GetControlRect(); GUI.Label(rect, team.name); GUILayout.EndHorizontal(); } GUILayout.EndVertical(); }