コード例 #1
0
    public void SpawnMultiUnits()
    {
        if (gameOver)
        {
            return;
        }

        Grid    startGrid = connectionGrid.gridList[1];
        Vector3 offset    = new Vector3(0, 5, 0);

        for (int i = 0; i < agentCount; i++)
        {
            if (myAgents.Count < MAX_UNITS)
            {
                int     randomIndex   = Random.Range(0, startGrid.permanentNodes.Count);
                Vector3 spawnLocation = startGrid.permanentNodes[randomIndex].GetLocation() + offset;

                GameObject newUnit  = Instantiate(unitPrefab, spawnLocation, Quaternion.identity) as GameObject;
                GridAgent  newAgent = newUnit.GetComponent <GridAgent>();
                newAgent.SetNavigationGrid(connectionGrid);
                newAgent.Initialize(this);
                myAgents.Add(newAgent);
            }
        }
    }
コード例 #2
0
    void SpawnUnit()
    {
        Grid startGrid = connectionGrid.gridList[1];
        int  index     = 461;

        startNode = startGrid.nodeList[index];
        endNode   = connectionGrid.gridList[0].nodeList[index];

        float range = 10f;

        for (int i = 0; i < agentCount; i++)
        {
            Vector3    initialLocation = startNode.GetLocation();
            Vector3    offset          = new Vector3(Random.Range(-range, range), 1, Random.Range(-range, range));
            Vector3    spawnLocation   = initialLocation + offset;
            GameObject newUnit         = Instantiate(unitPrefab, spawnLocation, Quaternion.identity) as GameObject;
            GridAgent  newAgent        = newUnit.GetComponent <GridAgent>();
            newAgent.SetNavigationGrid(connectionGrid);
            myAgents.Add(newAgent);
        }
    }