/// <summary> /// Creates a connector in the given diagram using a serialized connector. This diagram should already have its nodes created. /// </summary> /// <param name="diagram"></param> /// <param name="originNode"></param> /// <returns></returns> public static Connector CreateConnector(Diagram diagram, SerializableConnector serializedConnector) { GameObject newConnectorObj = new GameObject("Connector - New Node"); newConnectorObj.transform.parent = diagram.transform; Connector newConnector = newConnectorObj.AddComponent <Connector>(); // add origin node if (serializedConnector.originNodeID != null) { if (diagram.Nodes.ContainsKey(serializedConnector.originNodeID)) { var originNode = diagram.Nodes[serializedConnector.originNodeID]; newConnector.OriginNode = originNode; } } // add end node if (serializedConnector.endNodeID != null) { if (diagram.Nodes.ContainsKey(serializedConnector.endNodeID)) { var endNode = diagram.Nodes[serializedConnector.endNodeID]; newConnector.EndNode = endNode; } } return(newConnector); }
/// <summary> /// Manufactures a random diagram /// </summary> /// <param name="diagramName"></param> /// <returns></returns> Serializablediagram IdiagramSerializer.Loaddiagram(string diagramName) { var diagram = _saveddiagrams.SingleOrDefault(s => s.diagramName == diagramName); return(diagram); // create a random diagram var numberOfNodes = UnityEngine.Random.Range(10, 40); var numberOfConnectors = UnityEngine.Random.Range(numberOfNodes * 2, numberOfNodes * 5); var nodeList = new List <SerializableNode>(); for (int i = 0; i < numberOfNodes; i++) { var newNode = new SerializableNode(Guid.NewGuid(), i.ToString(), "", Color.blue); nodeList.Add(newNode); } var connectorList = new List <SerializableConnector>(); for (int i = 0; i < numberOfConnectors; i++) { var nodeInd = UnityEngine.Random.Range(0, numberOfNodes); var originNode = nodeList[nodeInd]; nodeInd = UnityEngine.Random.Range(0, numberOfNodes); var endNode = nodeList[nodeInd]; var newConnector = new SerializableConnector(originNode.uniqueID, endNode.uniqueID); connectorList.Add(newConnector); } var sdiagram = new Serializablediagram("Random diagram - " + Guid.NewGuid().ToString(), nodeList, connectorList); return(sdiagram); }