/// <summary> Create a node and save it in the graph asset </summary> public virtual void CreateNode(Type type, Vector2 position) { XNode.Node node = target.AddNode(type); node.OnCreated(); 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); } AssetDatabase.AddObjectToAsset(node, target); if (NodeEditorPreferences.GetSettings().autoSave) { AssetDatabase.SaveAssets(); } NodeEditorWindow.RepaintAll(); }