// Load --- public static ANNNode Load(string stream) { DATA_STRUCTS.NodeDataStruct data = new DATA_STRUCTS.NodeDataStruct(); data = JsonUtility.FromJson<DATA_STRUCTS.NodeDataStruct>(stream); ANNNode node = null; switch((DATA_STRUCTS.NodeDataStruct.NodeType)data.type) { case DATA_STRUCTS.NodeDataStruct.NodeType.Input: node = LoadInputNode(data); break; case DATA_STRUCTS.NodeDataStruct.NodeType.Output: node = LoadOutputNode(data); break; case DATA_STRUCTS.NodeDataStruct.NodeType.Hidden: break; default: Debug.LogWarning("Trying to Load(stream) a node with unknown type."); return null; } if (node == null) return null; data.Write(ref node); return node; }
// Serialization --- public static string ToStream(ANNNode node) { if (node == null) return ""; DATA_STRUCTS.NodeDataStruct data = new DATA_STRUCTS.NodeDataStruct(); data.Read(node); return JsonUtility.ToJson(data); }
private static ANNOutputNode LoadOutputNode(DATA_STRUCTS.NodeDataStruct data) { ANNOutputNode parent = null; foreach (string asset in AssetDatabase.FindAssets("t:ANNOutputNode")) { if (data.referenceuid == asset) { parent = AssetDatabase.LoadAssetAtPath<ANNOutputNode>(AssetDatabase.GUIDToAssetPath(asset)); break; } } return parent.InstanciateAsOutput(); }