diff --git a/Scripts/NodeGraph.cs b/Scripts/NodeGraph.cs index 863ad36..ca76749 100644 --- a/Scripts/NodeGraph.cs +++ b/Scripts/NodeGraph.cs @@ -72,16 +72,24 @@ public class NodeGraph { public static NodeGraph Deserialize(string json) { NodeGraph nodeGraph = JsonUtility.FromJson(json); - for (int i = 0; i < nodeGraph.s_nodes.Length; i++) { - NodeTyper tempNode = new NodeTyper(); - JsonUtility.FromJsonOverwrite(nodeGraph.s_nodes[i],tempNode); - //Node node = nodeGraph.AddNode(tempNode.nodeType); - Type type = Type.GetType(tempNode.nodeType); - Node node = JsonUtility.FromJson(nodeGraph.s_nodes[i], type) as Node; - nodeGraph.AddNode(node); + + //If we are trying to open a newly created nodegraph, it will be empty + if (nodeGraph == null) nodeGraph = new NodeGraph(); + if (nodeGraph.s_nodes != null) { + + for (int i = 0; i < nodeGraph.s_nodes.Length; i++) { + NodeTyper tempNode = new NodeTyper(); + JsonUtility.FromJsonOverwrite(nodeGraph.s_nodes[i], tempNode); + //Node node = nodeGraph.AddNode(tempNode.nodeType); + Type type = Type.GetType(tempNode.nodeType); + Node node = JsonUtility.FromJson(nodeGraph.s_nodes[i], type) as Node; + nodeGraph.AddNode(node); + } } - for (int i = 0; i < nodeGraph.nodes.Count; i++) { - nodeGraph.nodes[i].FinalizeDeserialization(); + if (nodeGraph.nodes != null){ + for (int i = 0; i < nodeGraph.nodes.Count; i++) { + nodeGraph.nodes[i].FinalizeDeserialization(); + } } return nodeGraph; }