diff --git a/Scripts/Editor/NodeEditor.cs b/Scripts/Editor/NodeEditor.cs
index c3f2f9e..19b71f3 100644
--- a/Scripts/Editor/NodeEditor.cs
+++ b/Scripts/Editor/NodeEditor.cs
@@ -86,9 +86,9 @@ namespace XNodeEditor {
/// Rename the node asset. This will trigger a reimport of the node.
public void Rename(string newName) {
- if (newName == null || newName.Trim() == "") newName = UnityEditor.ObjectNames.NicifyVariableName(target.GetType().Name);
+ if (newName == null || newName.Trim() == "") newName = NodeEditorUtilities.NodeDefaultName(target.GetType());
target.name = newName;
- AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(target));
+ AssetDatabase.RenameAsset(AssetDatabase.GetAssetPath(target), target.name);
}
[AttributeUsage(AttributeTargets.Class)]
diff --git a/Scripts/Editor/NodeEditorUtilities.cs b/Scripts/Editor/NodeEditorUtilities.cs
index 18e295f..77e71bb 100644
--- a/Scripts/Editor/NodeEditorUtilities.cs
+++ b/Scripts/Editor/NodeEditorUtilities.cs
@@ -133,6 +133,15 @@ namespace XNodeEditor {
} else return type.ToString();
}
+ /// Returns the default name for the node type.
+ public static string NodeDefaultName(Type type) {
+ string typeName = type.Name;
+ // Automatically remove redundant 'Node' postfix
+ if (typeName.EndsWith("Node")) typeName = typeName.Substring(0, typeName.LastIndexOf("Node"));
+ typeName = UnityEditor.ObjectNames.NicifyVariableName(typeName);
+ return typeName;
+ }
+
/// Creates a new C# Class.
[MenuItem("Assets/Create/xNode/Node C# Script", false, 89)]
private static void CreateNode() {
diff --git a/Scripts/Editor/NodeGraphEditor.cs b/Scripts/Editor/NodeGraphEditor.cs
index 8ece949..f79779f 100644
--- a/Scripts/Editor/NodeGraphEditor.cs
+++ b/Scripts/Editor/NodeGraphEditor.cs
@@ -74,12 +74,7 @@ namespace XNodeEditor {
public virtual void CreateNode(Type type, Vector2 position) {
XNode.Node node = target.AddNode(type);
node.position = position;
- if (string.IsNullOrEmpty(node.name)) {
- // Automatically remove redundant 'Node' postfix
- string typeName = type.Name;
- if (typeName.EndsWith("Node")) typeName = typeName.Substring(0, typeName.LastIndexOf("Node"));
- node.name = UnityEditor.ObjectNames.NicifyVariableName(typeName);
- }
+ if (node.name == null || node.name.Trim() == "") node.name = NodeEditorUtilities.NodeDefaultName(type);
AssetDatabase.AddObjectToAsset(node, target);
if (NodeEditorPreferences.GetSettings().autoSave) AssetDatabase.SaveAssets();
NodeEditorWindow.RepaintAll();
diff --git a/Scripts/Editor/RenamePopup.cs b/Scripts/Editor/RenamePopup.cs
index 9a1ed7b..1b4f718 100644
--- a/Scripts/Editor/RenamePopup.cs
+++ b/Scripts/Editor/RenamePopup.cs
@@ -48,8 +48,8 @@ namespace XNodeEditor {
// If input is empty, revert name to default instead
if (input == null || input.Trim() == "") {
if (GUILayout.Button("Revert to default") || (e.isKey && e.keyCode == KeyCode.Return)) {
- target.name = UnityEditor.ObjectNames.NicifyVariableName(target.GetType().Name);
- AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(target));
+ target.name = NodeEditorUtilities.NodeDefaultName(target.GetType());
+ AssetDatabase.RenameAsset(AssetDatabase.GetAssetPath(target), target.name);
Close();
}
}
@@ -57,7 +57,7 @@ namespace XNodeEditor {
else {
if (GUILayout.Button("Apply") || (e.isKey && e.keyCode == KeyCode.Return)) {
target.name = input;
- AssetDatabase.RenameAsset(AssetDatabase.GetAssetPath(target), input);
+ AssetDatabase.RenameAsset(AssetDatabase.GetAssetPath(target), target.name);
Close();
}
}