From b23e769c3b613d107c8bf9ff067e2230edb6883c Mon Sep 17 00:00:00 2001 From: LoomDoom Date: Sat, 27 Aug 2022 08:52:22 +0200 Subject: [PATCH] added cases to handle Copy and Rename for scenegraphs correctly --- Scripts/Editor/NodeGraphEditor.cs | 2 +- Scripts/Editor/RenamePopup.cs | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Scripts/Editor/NodeGraphEditor.cs b/Scripts/Editor/NodeGraphEditor.cs index a304c2c..0f5b8db 100644 --- a/Scripts/Editor/NodeGraphEditor.cs +++ b/Scripts/Editor/NodeGraphEditor.cs @@ -221,7 +221,7 @@ namespace XNodeEditor { XNode.Node node = target.CopyNode(original); Undo.RegisterCreatedObjectUndo(node, "Duplicate Node"); node.name = original.name; - AssetDatabase.AddObjectToAsset(node, target); + if (!string.IsNullOrEmpty(AssetDatabase.GetAssetPath(target))) AssetDatabase.AddObjectToAsset(node, target); if (NodeEditorPreferences.GetSettings().autoSave) AssetDatabase.SaveAssets(); return node; } diff --git a/Scripts/Editor/RenamePopup.cs b/Scripts/Editor/RenamePopup.cs index a43837f..ca1ee15 100644 --- a/Scripts/Editor/RenamePopup.cs +++ b/Scripts/Editor/RenamePopup.cs @@ -53,8 +53,10 @@ namespace XNodeEditor { if (GUILayout.Button("Revert to default") || (e.isKey && e.keyCode == KeyCode.Return)) { target.name = NodeEditorUtilities.NodeDefaultName(target.GetType()); NodeEditor.GetEditor((XNode.Node)target, NodeEditorWindow.current).OnRename(); - AssetDatabase.SetMainObject((target as XNode.Node).graph, AssetDatabase.GetAssetPath(target)); - AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(target)); + if (!string.IsNullOrEmpty(AssetDatabase.GetAssetPath(target))) { + AssetDatabase.SetMainObject((target as XNode.Node).graph, AssetDatabase.GetAssetPath(target)); + AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(target)); + } Close(); target.TriggerOnValidate(); } @@ -64,8 +66,10 @@ namespace XNodeEditor { if (GUILayout.Button("Apply") || (e.isKey && e.keyCode == KeyCode.Return)) { target.name = input; NodeEditor.GetEditor((XNode.Node)target, NodeEditorWindow.current).OnRename(); - AssetDatabase.SetMainObject((target as XNode.Node).graph, AssetDatabase.GetAssetPath(target)); - AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(target)); + if (!string.IsNullOrEmpty(AssetDatabase.GetAssetPath(target))) { + AssetDatabase.SetMainObject((target as XNode.Node).graph, AssetDatabase.GetAssetPath(target)); + AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(target)); + } Close(); target.TriggerOnValidate(); }