1
0
mirror of https://github.com/Siccity/xNode.git synced 2025-12-20 01:06:01 +08:00

added cases to handle Copy and Rename for scenegraphs correctly

This commit is contained in:
LoomDoom 2022-08-27 08:52:22 +02:00
parent 37680daee7
commit b23e769c3b
2 changed files with 9 additions and 5 deletions

View File

@ -221,7 +221,7 @@ namespace XNodeEditor {
XNode.Node node = target.CopyNode(original); XNode.Node node = target.CopyNode(original);
Undo.RegisterCreatedObjectUndo(node, "Duplicate Node"); Undo.RegisterCreatedObjectUndo(node, "Duplicate Node");
node.name = original.name; node.name = original.name;
AssetDatabase.AddObjectToAsset(node, target); if (!string.IsNullOrEmpty(AssetDatabase.GetAssetPath(target))) AssetDatabase.AddObjectToAsset(node, target);
if (NodeEditorPreferences.GetSettings().autoSave) AssetDatabase.SaveAssets(); if (NodeEditorPreferences.GetSettings().autoSave) AssetDatabase.SaveAssets();
return node; return node;
} }

View File

@ -53,8 +53,10 @@ namespace XNodeEditor {
if (GUILayout.Button("Revert to default") || (e.isKey && e.keyCode == KeyCode.Return)) { if (GUILayout.Button("Revert to default") || (e.isKey && e.keyCode == KeyCode.Return)) {
target.name = NodeEditorUtilities.NodeDefaultName(target.GetType()); target.name = NodeEditorUtilities.NodeDefaultName(target.GetType());
NodeEditor.GetEditor((XNode.Node)target, NodeEditorWindow.current).OnRename(); NodeEditor.GetEditor((XNode.Node)target, NodeEditorWindow.current).OnRename();
AssetDatabase.SetMainObject((target as XNode.Node).graph, AssetDatabase.GetAssetPath(target)); if (!string.IsNullOrEmpty(AssetDatabase.GetAssetPath(target))) {
AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(target)); AssetDatabase.SetMainObject((target as XNode.Node).graph, AssetDatabase.GetAssetPath(target));
AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(target));
}
Close(); Close();
target.TriggerOnValidate(); target.TriggerOnValidate();
} }
@ -64,8 +66,10 @@ namespace XNodeEditor {
if (GUILayout.Button("Apply") || (e.isKey && e.keyCode == KeyCode.Return)) { if (GUILayout.Button("Apply") || (e.isKey && e.keyCode == KeyCode.Return)) {
target.name = input; target.name = input;
NodeEditor.GetEditor((XNode.Node)target, NodeEditorWindow.current).OnRename(); NodeEditor.GetEditor((XNode.Node)target, NodeEditorWindow.current).OnRename();
AssetDatabase.SetMainObject((target as XNode.Node).graph, AssetDatabase.GetAssetPath(target)); if (!string.IsNullOrEmpty(AssetDatabase.GetAssetPath(target))) {
AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(target)); AssetDatabase.SetMainObject((target as XNode.Node).graph, AssetDatabase.GetAssetPath(target));
AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(target));
}
Close(); Close();
target.TriggerOnValidate(); target.TriggerOnValidate();
} }