//입력받은 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); }
//입력받은 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(); }