Ejemplo n.º 1
0
    //입력받은 Waypoint에 새Tower를 생성한다
    private void CreateNewTower(Waypoint foundation)
    {
        TowerHandler newTower = Instantiate(towerPrefab, foundation.transform.position, Quaternion.identity, transform);

        newTower.foundation    = foundation;
        foundation.isPlaceable = false; //현재 Waypoint에 Tower를 더 생성하지 못하도록 한다

        towers.Enqueue(newTower);
    }
    private void StartFirstWave()
    {
        // set initial values for wave and towercount
        waveText.text   = "Wave " + waveCount;
        towerHandler    = GameObject.FindObjectOfType <TowerHandler>();
        towerCount.text = "x" + towerHandler.towerLimit;

        // start countdown timer
        StartCoroutine(CountdownTimer());
        Invoke("PlayBGM", 5f);
    }
Ejemplo n.º 3
0
    //입력받은 Waypoint로 가장 오래된 타워를 옮긴다
    private void MoveOldestTower(Waypoint newFoundation)
    {
        TowerHandler oldTower = towers.Dequeue();

        oldTower.foundation.isPlaceable = true;  //이전 Waypoint에 Tower를 생성할 수 있도록 한다
        newFoundation.isPlaceable       = false; //현재 Waypoint에 Tower를 더 생성하지 못하도록 한다

        oldTower.foundation         = newFoundation;
        oldTower.transform.position = newFoundation.transform.position;

        towers.Enqueue(oldTower);
    }
    private void ResetTowers()
    {
        towerHandler = GameObject.FindObjectOfType <TowerHandler>();
        towers       = GameObject.FindGameObjectsWithTag("Tower");

        foreach (GameObject tower in towers)
        {
            Tower    towerInstance   = tower.GetComponent <Tower>();
            Waypoint waypointToReset = towerInstance.baseWaypoint;
            waypointToReset.isPlaceable = true;
            Destroy(tower);
        }

        towerHandler.towerQueue.Clear();
        towerHandler.ResetTowerStats();
    }