Пример #1
0
        ///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);
        }
Пример #2
0
        ///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);
        }