예제 #1
0
        // 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;
        }
예제 #2
0
 // 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);
 }
예제 #3
0
 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();
 }