예제 #1
0
 /// <summary>
 /// Removes the connection from NodeInput.
 /// </summary>
 public static void RemoveConnection(NodeInput input)
 {
     NodeEditorCallbacks.IssueOnRemoveConnection(input);
     input.connection.connections.Remove(input);
     input.connection = null;
     NodeEditor.RecalculateFrom(input.body);
 }
예제 #2
0
        /// <summary>
        /// Applies a connection between the passed NodeOutput and this NodeInput. 'CanApplyConnection' has to be checked before to avoid interferences!
        /// </summary>
        public void ApplyConnection(NodeOutput output)
        {
            if (output == null)
            {
                return;
            }

            if (connection != null)
            {
                NodeEditorCallbacks.IssueOnRemoveConnection(this);
                connection.connections.Remove(this);
            }
            connection = output;
            output.connections.Add(this);

            if (!output.body.calculated)
            {
                NodeEditor.RecalculateFrom(output.body);
            }
            else
            {
                NodeEditor.RecalculateFrom(body);
            }

            output.body.OnAddOutputConnection(output);
            body.OnAddInputConnection(this);
            NodeEditorCallbacks.IssueOnAddConnection(this);
        }
예제 #3
0
        /// <summary>
        /// Removes the connection of this port to the specified port if existant
        /// </summary>
        public void RemoveConnection(ConnectionPort port, bool silent = false)
        {
#if UNITY_EDITOR
            if (silent == false && port != null)
            {             // Undo record
                // Important: Copy variables used within anonymous functions within same level (this if block) for correct serialization!
                ConnectionPort port1 = this, port2 = port;
                UndoPro.UndoProManager.RecordOperation(
                    () => NodeEditorUndoActions.DeleteConnection(port1, port2),
                    () => NodeEditorUndoActions.CreateConnection(port1, port2),
                    "Delete Connection");
            }
#endif

            if (port == null)
            {
                Debug.LogWarning("Cannot delete null port!");
                //connections.RemoveAll (p => p != null);
                return;
            }

            if (!silent)
            {
                NodeEditorCallbacks.IssueOnRemoveConnection(this, port);
            }
            port.connections.Remove(this);
            connections.Remove(port);

            if (!silent)
            {
                body.canvas.OnNodeChange(body);
            }
        }
 public void RemoveConnection()
 {
     if (!((UnityEngine.Object)connection == (UnityEngine.Object)null))
     {
         NodeEditorCallbacks.IssueOnRemoveConnection(this);
         connection.connections.Remove(this);
         connection = null;
         NodeEditor.RecalculateFrom(body);
     }
 }
예제 #5
0
        /// <summary>
        /// Removes the connection from this NodeInput
        /// </summary>
        public void RemoveConnection()
        {
            if (connection == null)
            {
                return;
            }

            NodeEditorCallbacks.IssueOnRemoveConnection(this);
            connection.connections.Remove(this);
            connection = null;

            NodeEditor.curNodeCanvas.OnNodeChange(body);
        }
예제 #6
0
        /// <summary>
        /// Removes the connection from this NodeInput
        /// </summary>
        public void RemoveConnection()
        {
            if (connection == null)
            {
                return;
            }

            NodeEditorCallbacks.IssueOnRemoveConnection(this);
            connection.connections.Remove(this);
            connection = null;

            NodeEditor.RecalculateFrom(body);
        }
예제 #7
0
        /// <summary>
        /// Removes the connection of this port to the specified port if existant
        /// </summary>
        public void RemoveConnection(ConnectionPort port, bool silent = false)
        {
            Undo.RecordObjects(new [] { this, port }, "NodeEditor_连接移除保存");
            if (port == null)
            {
                connections.RemoveAll(p => p != null);
                return;
            }

            if (!silent)
            {
                NodeEditorCallbacks.IssueOnRemoveConnection(this, port);
            }
            port.connections.Remove(this);
            connections.Remove(port);
        }
예제 #8
0
        /// <summary>
        /// Removes the connection of this port to the specified port if existant
        /// </summary>
        public void RemoveConnection(ConnectionPort port, bool silent = false)
        {
            if (port == null)
            {
                connections.RemoveAll(p => p != null);
                return;
            }

            if (!silent)
            {
                NodeEditorCallbacks.IssueOnRemoveConnection(this, port);
            }
            port.connections.Remove(this);
            connections.Remove(port);

            if (!silent)
            {
                body.canvas.OnNodeChange(body);
            }
        }
예제 #9
0
        /// <summary>
        /// Applies a connection between the passed NodeOutput and this NodeInput. 'CanApplyConnection' has to be checked before to avoid interferences!
        /// </summary>
        public void ApplyConnection(NodeOutput output)
        {
            if (output == null)
            {
                return;
            }

            if (connection != null)
            {
                NodeEditorCallbacks.IssueOnRemoveConnection(this);
                connection.connections.Remove(this);
            }
            connection = output;
            output.connections.Add(this);
            output.body.OnAddOutputConnection(output);
            body.OnAddInputConnection(this);
            NodeEditorCallbacks.IssueOnAddConnection(this);

            NodeEditor.curNodeCanvas.OnNodeChange(body);
        }
 public void ApplyConnection(NodeOutput output)
 {
     if (!((UnityEngine.Object)output == (UnityEngine.Object)null))
     {
         if ((UnityEngine.Object)connection != (UnityEngine.Object)null)
         {
             NodeEditorCallbacks.IssueOnRemoveConnection(this);
             connection.connections.Remove(this);
         }
         connection = output;
         output.connections.Add(this);
         if (!output.body.calculated)
         {
             NodeEditor.RecalculateFrom(output.body);
         }
         else
         {
             NodeEditor.RecalculateFrom(body);
         }
         output.body.OnAddOutputConnection(output);
         body.OnAddInputConnection(this);
         NodeEditorCallbacks.IssueOnAddConnection(this);
     }
 }