private void CleanupNode(NodeEditorBase node) { Undo.RecordObject(node.Data, "Delete node"); node.CleanConnections(); _graph.DeleteNode(node.Data); _window.GraveyardAdd(node); Undo.DestroyObjectImmediate(node.Data); var childObjects = node.Data.enterActions .Concat <ScriptableObject>(node.Data.exitActions) .Concat(node.Data.conditions); foreach (var scriptableObject in childObjects) { Undo.DestroyObjectImmediate(scriptableObject); } node.DeleteCleanup(); }