示例#1
0
    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]);
    }