/// <summary> /// Handler for deserializing a node from a string payload /// </summary> /// <param name="operationName"></param> /// <param name="data"></param> private void OnUnserializeAndPaste(string operationName, string data) { Undo.RegisterCompleteObjectUndo(m_Graph, "Paste Subgraph"); var cpg = CopyPasteGraph.Deserialize(data); foreach (var node in cpg.nodes) { m_Graph.AddNode(node); } foreach (var comment in cpg.comments) { m_Graph.comments.Add(comment); } m_SerializedGraph.Update(); EditorUtility.SetDirty(m_Graph); // Add views for all the new elements ClearSelection(); AddNodeViews(cpg.nodes, true, true); AddCommentViews(cpg.comments); ScriptableObject.DestroyImmediate(cpg); }