コード例 #1
0
    //Add node based on the indexing of the typeOfNode, will determine what kind of node spawn at each index.
    //Insert the appropriate list of integers to spawn the appropriate node types for each node.
    protected void GenerateInitPlanet(GraphGenerator generator, List <int> nodeTypes, int numberOfNodes, float scale)
    {
        listOfNodes = new List <PlanetNode>();
        listOfLinks = new List <PlanetLink>();

        GraphGenerator.GraphData graphData = generator.Generate(numberOfNodes, scale, containerForBoth.transform.position);
        for (int i = 0; i < graphData.nodes.Count; i++)
        {
            if (i > nodeTypes.Count - 1)
            {
                break;
            }
            GameObject obj  = Instantiate(typeOfNode[nodeTypes[i]], graphData.nodes[i], graphData.nodes_rot[i], containerForNodes.transform);
            PlanetNode node = obj.GetComponent <PlanetNode>();
            node.index = i;
            listOfNodes.Add(node);
        }

        for (int i = 0; i < graphData.links.Count; i += 2)
        {
            //Will definetly have no direction links because i said so.
            if (!graphData.isLinksDirectional)
            {
                GameObject obj    = Instantiate(typeOfLink, Vector3.zero, Quaternion.identity, containerForLinks.transform);
                PlanetLink link   = obj.GetComponent <PlanetLink>();
                int        index1 = graphData.links[i];
                int        index2 = graphData.links[i + 1];
                link.nodePrev = listOfNodes[index1];
                link.nodeNext = listOfNodes[index2];
                link.PlaceLinkAtNodes();
                listOfLinks.Add(link);
            }
        }
    }
コード例 #2
0
    public void MakeLink(int fromNode, int toNode)
    {
        GameObject obj  = Instantiate(typeOfLink, Vector3.zero, Quaternion.identity, containerForLinks.transform);
        PlanetLink link = obj.GetComponent <PlanetLink>();

        link.nodePrev = listOfNodes[fromNode];
        link.nodeNext = listOfNodes[toNode];
        link.PlaceLinkAtNodes();
        listOfLinks.Add(link);
    }
コード例 #3
0
    void CheckForLinkExistence(int index)
    {
        PlanetLink link = GM.planet.CheckForLinks(index);

        if (link != null)
        {
            linkStandingOn = link;
            button_moveOnLink.interactable = true;
        }
        else
        {
            linkStandingOn = null;
            button_moveOnLink.interactable = false;
        }
    }