void OnGUI() { BackGround(); e = Event.current; mousePos = e.mousePosition; if (IsReallyTimeView = GUI.Toggle(rect_ReallyTimeView_Toggle, IsReallyTimeView, "Really Time Rend")) Repaint(); if (GUI.RepeatButton(new Rect(position.width-200,20,150,30),"Update Code Now!") && !IsPickingNodeInterface) { StringBuilder modelContext = new StringBuilder(); for (int i = 0; i < windowsNode.Count; i++) { ResultGroupNode result = windowsNode[i] as ResultGroupNode; if (result) modelContext.Append(result.GetRootMorphContext()); } for (int j = 0; j < windowsNode.Count; j++) { ResultGroupNode result = windowsNode[j] as ResultGroupNode; if (result) { modelContext.Append(result.resultContext); result.resultContext = ""; } } AutoManager.CreateMyAsset(modelContext.ToString()); } if (e.button == 1 && !IsPickingNodeInterface) { MouseAtThisWindow_1 = null; bool IsShowMainMenu = true; for (int i = 0; i < windowsNode.Count; i++) { BaseInput tmp_MouseAtWindow = windowsNode[i].IsMouseAtWindow(e.mousePosition - new Vector2(20,0)); if (tmp_MouseAtWindow) { MouseAtThisWindow_1 = tmp_MouseAtWindow; IsPickingNodeInterface = false; IsShowMainMenu = false; if (tmp_MouseAtWindow.Picked(out NodeData)) linkMenu.ShowMenu(position); else removeMenu.ShowMenu(position); } } if (IsShowMainMenu) mainMenu.ShowMenu(position); } else if (IsPickingNodeInterface) { DrawCurve(NodeData.otherPos,mousePos); if (e.button == 0 && e.type == EventType.MouseDown) { if (!MouseAtThisWindow_1.IsMouseAtWindow(mousePos)) IsPickingNodeInterface = false; for (int i = 0; i < windowsNode.Count; i++) { BaseInput tmp_MouseAtWindow = windowsNode[i].IsMouseAtWindow(e.mousePosition + new Vector2(20, 0)); if (tmp_MouseAtWindow) { MouseAtThisWindow_2 = tmp_MouseAtWindow; if (MouseAtThisWindow_2 != MouseAtThisWindow_1) { NodeData.otherInputNode = MouseAtThisWindow_1; IsPickingNodeInterface = !MouseAtThisWindow_2.SetInput(NodeData); } } } } Repaint(); } else if (!IsPickingNodeInterface && e.type == EventType.MouseDown) { Repaint(); for (int i = 0; i < windowsNode.Count; i++) { BaseInput tmp_MouseAtWindow = windowsNode[i].IsMouseAtWindow(e.mousePosition + new Vector2(20, 0)); if (tmp_MouseAtWindow) tmp_MouseAtWindow.SetInput(null); } } Draw(); for (int i = 0; i < windowsNode.Count; i++) windowsNode[i].DrawCurve(); }