diff --git a/Editor/Scripts/Editor/Nodes/Base/PortConnection.cs b/Editor/Scripts/Editor/Nodes/Base/PortConnection.cs index 1a3d0de..c996ade 100644 --- a/Editor/Scripts/Editor/Nodes/Base/PortConnection.cs +++ b/Editor/Scripts/Editor/Nodes/Base/PortConnection.cs @@ -1,4 +1,6 @@ using UnityEditor.Experimental.GraphView; +using UnityEngine; + namespace ImageProcessingGraph.Editor { [System.Serializable] @@ -7,7 +9,7 @@ namespace ImageProcessingGraph.Editor public GraphPort inputPort; public GraphPort outputPort; - public Edge internalEdge; + [SerializeField] public Edge internalEdge; public GraphConnection(GraphPort inputPort, GraphPort outputPort, Edge internalEdge) { diff --git a/Editor/Scripts/Editor/Windows/ImageProcessingGraphEdgeConnectorListener.cs b/Editor/Scripts/Editor/Windows/ImageProcessingGraphEdgeConnectorListener.cs index 7e2240a..612a607 100644 --- a/Editor/Scripts/Editor/Windows/ImageProcessingGraphEdgeConnectorListener.cs +++ b/Editor/Scripts/Editor/Windows/ImageProcessingGraphEdgeConnectorListener.cs @@ -43,9 +43,27 @@ namespace ImageProcessingGraph.Editor.Unity_Image_Processing.Scripts.Editor.Wind window.asset.Connections.Remove(VARIABLE); } } + + public void OnDrop(UnityEditor.Experimental.GraphView.GraphView graphView, Edge edge) { + List connections = new List(); + + foreach (var conn in window.asset.Connections) + { + if (conn.internalEdge == edge) + { + connections.Add(conn); + } + } + + foreach (var VARIABLE in connections) + { + window.asset.Connections.Remove(VARIABLE); + } + + this.m_EdgesToCreate.Clear(); this.m_EdgesToCreate.Add(edge); this.m_EdgesToDelete.Clear();