// ============================================================================================================ #region inspector private void DrawInspector() { // toolbar GUILayout.BeginHorizontal(); { if (inspectorArea != 0 && inspectorArea != 2) GUI.enabled = false; if (GUILayout.Button("+", EditorStyles.toolbarButton, GUILayout.Width(25))) { if (inspectorArea == 0) { // new dialogue graph currGraph = new DiaQGraph(); currGraph.name = "Dialogue"; currGraph.CreateNode(DiaQNode.Type.Start, new Vector2(100f, 70f)); asset.graphs.Add(currGraph); EditorUtility.SetDirty(asset); } else { // new quest currQuest = new DiaQuest(); currQuest.name = "Quest"; asset.quests.Add(currQuest); EditorUtility.SetDirty(asset); } } GUI.enabled = true; if (DiaQEdGUI.ToggleButton(inspectorArea == 0, "Graphs", EditorStyles.toolbarButton)) { currQuest = null; inspectorArea = 0; inspectorScroll[0] = Vector2.zero; } if (DiaQEdGUI.ToggleButton(inspectorArea == 2, "Quests", EditorStyles.toolbarButton)) { currGraph = null; currNode = null; inspectorArea = 2; inspectorScroll[0] = Vector2.zero; } if (DiaQEdGUI.ToggleButton(inspectorArea == 1, "Settings", EditorStyles.toolbarButton)) { currGraph = null; currNode = null; currQuest = null; inspectorArea = 1; inspectorScroll[0] = Vector2.zero; } if (GUILayout.Button(new GUIContent(DiaQEdGUI.Icon_Help), EditorStyles.toolbarButton, GUILayout.Width(25))) { DiaQVersion.ShowAbout(); } } GUILayout.EndHorizontal(); DiaQEdGUI.DrawHorizontalLine(2f, DiaQEdGUI.Col_Back, 0f, 2f); if (inspectorArea == 0) { // list of graphs inspectorScroll[0] = GUILayout.BeginScrollView(inspectorScroll[0], false, true, GUILayout.Width(inspectorRect.width), GUILayout.Height(splitterPos[1] - 18)); { foreach (DiaQGraph g in asset.graphs) { if (g == null) continue; if (DiaQEdGUI.ToggleButton(g == currGraph, g.name, EditorStyles.miniButton)) { currNode = null; currGraph = g; UpdateGraphCachedStrings(); GUI.FocusControl(""); } } } GUILayout.EndScrollView(); // splitter if (splitterPos[1] == 0f) splitterPos[1] = this.position.height * 0.5f; splitterRect[1] = new Rect(0f, splitterPos[1], this.position.width, 5f); GUI.Box(splitterRect[1], GUIContent.none, DiaQEdGUI.SplitterStyle); GUILayout.Space(1); // properties of selected node/ graph inspectorScroll[1] = GUILayout.BeginScrollView(inspectorScroll[1], false, true, GUILayout.Width(inspectorRect.width)); { if (currNode != null) DrawNodeProperties(); else if (currGraph != null) DrawGraphProperties(); } GUILayout.EndScrollView(); //GUILayout.Space(23); } else if (inspectorArea == 1) { // show settings/ tools inspectorScroll[0] = GUILayout.BeginScrollView(inspectorScroll[0], false, true, GUILayout.Width(inspectorRect.width)); { DrawInspectorTools(); } GUILayout.EndScrollView(); //GUILayout.Space(23); } else if (inspectorArea == 2) { // show list of quests inspectorScroll[0] = GUILayout.BeginScrollView(inspectorScroll[0], false, true, GUILayout.Width(inspectorRect.width)); { DrawQuestList(); } GUILayout.EndScrollView(); //GUILayout.Space(23); } }