diff --git a/Editor/NodeGroupEditor.cs b/Editor/NodeGroupEditor.cs index 8561807..5dc36df 100644 --- a/Editor/NodeGroupEditor.cs +++ b/Editor/NodeGroupEditor.cs @@ -46,21 +46,28 @@ namespace XNodeEditor.NodeGroups { selection.AddRange(group.GetNodes()); // Select Reroutes foreach (Node node in target.graph.nodes) { - foreach (NodePort port in node.Ports) { - for (int i = 0; i < port.ConnectionCount; i++) { - List reroutes = port.GetReroutePoints(i); - for (int k = 0; k < reroutes.Count; k++) { - Vector2 p = reroutes[k]; - if (p.x < group.position.x) continue; - if (p.y < group.position.y) continue; - if (p.x > group.position.x + group.width) continue; - if (p.y > group.position.y + group.height + 30) continue; - if (NodeEditorWindow.current.selectedReroutes.Any(x => x.port == port && x.connectionIndex == i && x.pointIndex == k)) continue; - NodeEditorWindow.current.selectedReroutes.Add( - new Internal.RerouteReference(port, i, k) - ); + if (node != null) + { + foreach (NodePort port in node.Ports) { + for (int i = 0; i < port.ConnectionCount; i++) { + List reroutes = port.GetReroutePoints(i); + for (int k = 0; k < reroutes.Count; k++) { + Vector2 p = reroutes[k]; + if (p.x < group.position.x) continue; + if (p.y < group.position.y) continue; + if (p.x > group.position.x + group.width) continue; + if (p.y > group.position.y + group.height + 30) continue; + if (NodeEditorWindow.current.selectedReroutes.Any(x => x.port == port && x.connectionIndex == i && x.pointIndex == k)) continue; + NodeEditorWindow.current.selectedReroutes.Add( + new Internal.RerouteReference(port, i, k) + ); + } } - } + } + } + else + { + continue; } } Selection.objects = selection.Distinct().ToArray(); @@ -101,4 +108,4 @@ namespace XNodeEditor.NodeGroups { EditorGUIUtility.AddCursorRect(rect, MouseCursor.ResizeUpLeft); } } -} \ No newline at end of file +}