public void OnGUI() { AssignSelectedGroup(); NodeGroup selectedGroup = NodifyEditorUtilities.currentSelectedGroup; if (selectedGroup != null) { selectedGroup.SetHideStateChildrenNonNodes(HideFlags.None); OnDrawEditorBackground(); NodifyEditorUtilities.BeginZoomArea(selectedGroup.editorZoomAmount, new Rect(0, 0, Screen.width, Screen.height)); this.RemoveNotification(); selectedGroup.editorWindowOffset.x = Mathf.Min(selectedGroup.editorWindowOffset.x, 0); selectedGroup.editorWindowOffset.y = Mathf.Min(selectedGroup.editorWindowOffset.y, 0); this.OnDrawEditorGrid(); if (selectedGroup != null) { if (NodifyEditorUtilities.currentConnectingAnchor != null) { DrawCurrentConnectingAnchor(NodifyEditorUtilities.currentConnectingAnchor); } /// Begin Node Anchor Rendering (Anchors rendered behind everything) foreach (Node node in selectedGroup.childNodes) { foreach (Anchor anchor in node.anchors) { for (int i = 0; i < anchor.anchorConnections.Count; i++) { if (anchor.anchorConnections[i] == null) { continue; } DrawAnchorConnection(anchor.anchorConnections[i]); } for (int i = 0; i < anchor.nodeConnections.Count; i++) { if (anchor.nodeConnections[i] == null) { continue; } DrawNodeConnection(anchor.nodeConnections[i]); } } } // End Node Anchor Rendering //Begin Node Group Anchor Rendering foreach (NodeGroup nodeGroup in selectedGroup.childGroups) { foreach (Anchor anchor in nodeGroup.anchors) { foreach (AnchorConnection connection in anchor.anchorConnections) { DrawAnchorConnection(connection); } foreach (NodeConnection connection in anchor.nodeConnections) { DrawNodeConnection(connection); } } } // End Node Group Anchor Rendering // Node Rendering foreach (Node node in selectedGroup.childNodes) { if (node.GetComponent <NodeGroup>()) { continue; } foreach (Anchor anchor in node.anchors) { DrawAnchor(anchor); } DrawNode(node); } // End Node Rendering // Node Group Rendering foreach (NodeGroup nodeGroup in selectedGroup.childGroups) { if (nodeGroup == selectedGroup) { continue; } foreach (Anchor anchor in nodeGroup.anchors) { DrawAnchor(anchor); } DrawNodeGroup(nodeGroup); } // End Node Group Rendering } NodifyEditorUtilities.EndZoomArea(); HandleEditorEvents(selectedGroup); if (MouseSelection == true && Event.current.type == EventType.Repaint) { editorSelectionRect.Draw(RectExtensions.GetRectFromPoints(MouseSelectionStartPoint, Event.current.mousePosition), false, false, false, false); } } else { ShowNotification(new GUIContent("Create or Select a Node Group")); } DrawToolbar(); DrawBreadcrumbs(); DrawLogo(); if (ShouldRepaint()) { this.Repaint(); } }