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

Better asset handling on add/remove node

This commit is contained in:
Thor Brigsted 2017-10-08 23:44:08 +02:00
parent 9dd3e1db75
commit cd1864fce3
3 changed files with 19 additions and 1 deletions

Binary file not shown.

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 5398d565241ec2d489f41c368ca6cf24
timeCreated: 1507498811
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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
/// <param name="node"></param>
public void RemoveNode(Node node) {
node.ClearConnections();
#if UNITY_EDITOR
if (!Application.isPlaying) {
DestroyImmediate(node, true);
UnityEditor.AssetDatabase.SaveAssets();
}
#endif
nodes.Remove(node);
}