///Removes a connection public void RemoveConnection(Connection connection, bool recordUndo = true) { //for live editing if (Application.isPlaying) { connection.Reset(); } if (recordUndo) { RecordUndo("Delete Connection"); } //callbacks connection.OnDestroy(); connection.sourceNode.OnChildDisconnected(connection.sourceNode.outConnections.IndexOf(connection)); connection.targetNode.OnParentDisconnected(connection.targetNode.inConnections.IndexOf(connection)); connection.sourceNode.outConnections.Remove(connection); connection.targetNode.inConnections.Remove(connection); #if UNITY_EDITOR //TODO: FIX in accessors? currentSelection = null; #endif UpdateNodeIDs(false); }
///Removes a connection public void RemoveConnection(Connection connection, bool recordUndo = true) { //for live editing if (Application.isPlaying) { connection.Reset(); } if (recordUndo) { RecordUndo("Delete Connection"); } //callbacks connection.OnDestroy(); connection.sourceNode.OnChildDisconnected(connection.sourceNode.outConnections.IndexOf(connection)); connection.targetNode.OnParentDisconnected(connection.targetNode.inConnections.IndexOf(connection)); connection.sourceNode.outConnections.Remove(connection); connection.targetNode.inConnections.Remove(connection); #if UNITY_EDITOR NodeCanvas.Editor.GraphEditorUtility.activeElement = null; #endif UpdateNodeIDs(false); }