diff --git a/Example/ExampleNodeGraph.asset b/Example/ExampleNodeGraph.asset new file mode 100644 index 0000000..3818860 Binary files /dev/null and b/Example/ExampleNodeGraph.asset differ diff --git a/Example/ExampleNodeGraph.asset.meta b/Example/ExampleNodeGraph.asset.meta new file mode 100644 index 0000000..723ec56 --- /dev/null +++ b/Example/ExampleNodeGraph.asset.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5398d565241ec2d489f41c368ca6cf24 +timeCreated: 1507498811 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Scripts/NodeGraph.cs b/Scripts/NodeGraph.cs index 9e3c7d8..58baa23 100644 --- a/Scripts/NodeGraph.cs +++ b/Scripts/NodeGraph.cs @@ -18,7 +18,10 @@ public abstract class NodeGraph : ScriptableObject, ISerializationCallbackReceiv public virtual Node AddNode(Type type) { Node node = ScriptableObject.CreateInstance(type) as Node; #if UNITY_EDITOR - UnityEditor.AssetDatabase.AddObjectToAsset(node, this); + if (!Application.isPlaying) { + UnityEditor.AssetDatabase.AddObjectToAsset(node, this); + UnityEditor.AssetDatabase.SaveAssets(); + } #endif nodes.Add(node); node.graph = this; @@ -29,6 +32,12 @@ public abstract class NodeGraph : ScriptableObject, ISerializationCallbackReceiv /// public void RemoveNode(Node node) { node.ClearConnections(); +#if UNITY_EDITOR + if (!Application.isPlaying) { + DestroyImmediate(node, true); + UnityEditor.AssetDatabase.SaveAssets(); + } +#endif nodes.Remove(node); }