public void Start() { // Load the Graph and some auxiliary lists nodeObjects = new List <NodeObject>(); foreach (Node n in nodes) { // ...and its respective node Edges GameObject obj = Instantiate(nodePrefab, (new Vector3(n.coord.x, n.coord.y)), Quaternion.identity) as GameObject; obj.name = n.nodeName; NodeObject nodeObj = obj.GetComponent <NodeObject>(); n.nodeObject = nodeObj; nodeObj.node = n; nodeObj.SetTextLabel(n.nodeName); nodeObjects.Add(nodeObj); obj.transform.SetParent(this.transform); // Draw the Edgess foreach (Edge e in n.edges) { GameObject edgeObj = Instantiate(edgePrefab, (new Vector3(n.coord.x, n.coord.y)), Quaternion.identity) as GameObject; edgeObj.name = e.destinyNodeName; edgeObj.transform.SetParent(nodeObj.transform); var lineRenderer = edgeObj.GetComponent <LineRenderer>(); // Initial edge position lineRenderer.SetPosition(0, edgeObj.transform.position); // Final edge position lineRenderer.SetPosition(1, graph.GetNodeFromString(e.destinyNodeName).coord); } } // Set default start and target nodes SetInitialState(nodeObjects[0]); SetTargetState(nodeObjects[nodes.Count - 1]); }