public override void OnPointerDrag(PointerEvent evt) { NodeHandle handle = (NodeHandle)evt.downObject; Vector2 mousePos = evt.mousePos; if (_draggingHandle == null) { if (handle.type == NodeHandle.HandleType.Out) { _nodeCanvas.CreatePreviewConnection(handle, evt.mousePos); _draggingHandle = handle; } else { NodePanel parent = handle.NodePanel.Parent; if (parent != null) { _draggingHandle = parent.outHandle; _nodeCanvas.RemoveChild(handle.NodePanel); _nodeCanvas.CreatePreviewConnection(parent.outHandle, evt.mousePos); } } } if (_draggingHandle != null && _nodeCanvas.previewConnection != null) { _nodeCanvas.previewConnection.SetEndPosition(CanvasUtility.ScreenToCanvasPosition(mousePos, _nodeCanvas.canvasState)); _nodeCanvas.previewConnection.UpdatePoints(new List <NodeConnection>()); } }