public void EndSlotDragging(Slot slot, bool allowMultiple) { if (m_DraggingEdge != null && !(slot.node is AnyStateNode)) { UnityEditor.Graphs.AnimationStateMachine.Node node = m_DraggingEdge.fromSlot.node as UnityEditor.Graphs.AnimationStateMachine.Node; UnityEditor.Graphs.AnimationStateMachine.Node toNode = slot.node as UnityEditor.Graphs.AnimationStateMachine.Node; if (slot == m_DraggingEdge.fromSlot) { host.graph.RemoveEdge(m_DraggingEdge); } else { m_DraggingEdge.toSlot = slot; host.selection.Clear(); host.selection.Add(node); Selection.activeObject = node.selectionObject; node.Connect(toNode, m_DraggingEdge); } m_DraggingEdge = null; s_TargetDraggingSlot = null; Event.current.Use(); smHost.tool.wantsMouseMove = false; AnimatorControllerTool.tool.RebuildGraph(); } }