示例#1
0
		// ============================================================================================================
		#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);
			}
		}