private void ShowNodeCreationMenuFromEdge(BaseConnectionView connectionView, Vector2 position) { if (edgeNodeCreateMenuWindow == null) { edgeNodeCreateMenuWindow = ScriptableObject.CreateInstance <CreateNodeMenuWindow>(); } edgeNodeCreateMenuWindow.Initialize(graphView, graphView.GetNodeTypes()); edgeNodeCreateMenuWindow.ConnectionFilter = connectionView; SearchWindow.Open(new SearchWindowContext(position + EditorWindow.focusedWindow.position.position), edgeNodeCreateMenuWindow); }
/// <summary> 拖到空白松开时触发 </summary> public void OnDropOutsidePort(Edge edge, Vector2 position) { BaseConnectionView connectionView = edge as BaseConnectionView; if (!edge.isGhostEdge) { if (connectionView.Model != null) { graphView.Model.Disconnect(connectionView.Model); } } if (edge.input == null || edge.output == null) { ShowNodeCreationMenuFromEdge(connectionView, position); } }