void OnGUI() { float height = this.position.height; float width = this.position.width; float drawY = 30 + offsetY; // GUILayout.Label("Quest Setting", EditorStyles.boldLabel); GUI.Label(new Rect(10 + offsetX, drawY + offsetY, 75, 20), "Quest Name"); myString = GUI.TextField(new Rect(100 + offsetX, drawY + offsetY, width - 200, 20), myString); if (GUI.Button(new Rect(width - 90 + offsetX, drawY + offsetY, 80, 20), "Save")) { saveToXML(); } drawY += 35; //myString = EditorGUILayout.TextField ("Quest Name", myString); //groupEnabled = EditorGUILayout.BeginToggleGroup ("Optional Settings", groupEnabled); // Begin group toggle // myBool = EditorGUILayout.Toggle ("Toggle", myBool); // myFloat = EditorGUILayout.Slider ("Slider", myFloat, -3, 3); //EditorGUILayout.EndToggleGroup (); // Object List // GUILayout.Label("Quest NPCs in Scene", EditorStyles.boldLabel); // if(qNpcs != null && qNpcs.Length > 0) { // Debug.Log("SIZE>0"); // GUILayoutOption[] options = new GUILayoutOption[0]; // foreach(QNpc o in qNpcs){ // string label = o.name + " | Tag="+o.tag +":"; //"// Tag: "; // if(o.tag != "Untagged"){ // //EditorGUILayout.ObjectField(label,o,typeof(Object),true,new GUILayoutOption[0]); // } // else { // EditorGUILayout.LabelField(label); // } // } // } float nodeAreaTop = drawY; yCol = new int[8]; for (int i = 0; i < yCol.Length; i++) { yCol[i] = (int)drawY; } //foreach (QuestNode node in currentQuest.getNodes()) //{ // drawNode(node, 0, nodeWidth); //} if (currentQuest.getRootNode() != null) { drawNode(currentQuest.getRootNode(), 0, nodeWidth); } // Mouse input handled here Event currentEvent = Event.current; if (currentEvent.type == EventType.MouseDown || isPressed) { if (isPressed) { Vector2 mousePos_2D = new Vector2(currentEvent.mousePosition.x, (Screen.height - currentEvent.mousePosition.y)); Vector2 diff = mousePos_2D - mouseInit; offsetX = oXInit + (int)(diff.x + 0.5); offsetY = oYInit - (int)(diff.y + 0.5); if (offsetX > 0) { offsetX = 0; } if (offsetY > 0) { offsetY = 0; } Repaint(); } else { mouseInit = new Vector2(currentEvent.mousePosition.x, (Screen.height - currentEvent.mousePosition.y)); oXInit = offsetX; oYInit = offsetY; isPressed = true; } } if (currentEvent.type == EventType.MouseUp) { isPressed = false; } }