public static BaseNode LoadNode(CommonNodeData commonNodeData) { string typeName = commonNodeData.nodeTypeId; Type type = ReflectionUtils.GetType(typeName); BaseNode node = default; try { node = JsonUtility.FromJson(commonNodeData.serializedData, type) as BaseNode; } catch { Debug.LogError($"deserialize failed from json: {commonNodeData.serializedData}"); } finally { if (node == null) { node = Activator.CreateInstance(type) as BaseNode; } } node.GUID = commonNodeData.nodeGUID; node.ConstructView(); return(node); }
public BaseNode LoadAndAddNode(CommonNodeData commonNodeData) { var node = BaseNode.LoadNode(commonNodeData); node.SetPosition(new Rect(commonNodeData.position, node.Size)); AddElement(node); return(node); }