public void Update() { if (Input.GetMouseButtonDown(0)) { var mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); var position = new Vector2(Mathf.Floor(mousePos.x) + 0.5f, Mathf.Floor(mousePos.y) + 0.5f); var possibleTowers = Physics2D.OverlapCircleAll(position, 0.3f, 256); GameObject tower = null; foreach (var hit in possibleTowers) { if (hit.transform.position.x == position.x && hit.transform.position.y == position.y) { tower = hit.transform.gameObject; } } //RaycastHit2D hit = Physics2D.Raycast(new Vector2(Camera.ScreenToWorldPoint(Input.mousePosition).x, Camera.ScreenToWorldPoint(Input.mousePosition).y), -Vector2.up, 0f, LayerMask.GetMask("Towers")); if (tower != null) { myTower = tower.GetComponent <GenericTower>(); if (myTower.IsFireMode == true) { myUpgradeMenu.SetActive(true); } } } }
public void UpgradeTower() { this.TowerLevel++; Vector2 towerPosition = this.transform.position; if (TowerLevel < 4) { GameObject upgradedTower = Resources.Load("Towers/" + this.TowerType + "TowerL" + this.TowerLevel) as GameObject; GenericTower myUpgradedTower = Instantiate(upgradedTower, towerPosition, Quaternion.Euler(0, 0, 0)).GetComponent <GenericTower>(); myUpgradedTower.SpawnPoint = SpawnPoint; myUpgradedTower.transform.SetParent(this.transform.parent); Destroy(myProjectile); Destroy(this.gameObject); } }
public void PlaceTowerClick(int towerType) { if (GameLogic.money >= GameLogic.buildCost) { string towerResource; GenericTower.TowerTypeEnum myTowerType = (GenericTower.TowerTypeEnum)towerType; switch (myTowerType) { case GenericTower.TowerTypeEnum.Fire: towerResource = "FireTower"; break; case GenericTower.TowerTypeEnum.Ice: towerResource = "IceTower"; break; case GenericTower.TowerTypeEnum.Rock: towerResource = "RockTower"; break; case GenericTower.TowerTypeEnum.Lightning: towerResource = "LightningTower"; break; default: throw new Exception("Unknown Tower Type:" + towerType); } GameObject prefab = Resources.Load <GameObject>("Towers/" + towerResource) as GameObject; GameObject newTower = Instantiate(prefab); var towers = GameObject.Find("Towers"); newTower.transform.SetParent(towers.transform); GenericTower newGenericTower = newTower.GetComponent <GenericTower>(); newGenericTower.Initizalize(myTowerType); GameLogic.money -= GameLogic.buildCost; } }
// Update is called once per frame void Update() { // Place a tower? if (Input.GetKeyDown("q") && resources > towerResourceCost) { Transform tower = (Transform)Instantiate(towerTemplate, spawnLocation.position, Quaternion.identity); GenericTower controller = tower.GetComponent <GenericTower>(); controller.attackRange = attackRange; controller.bulletSpeed = bulletSpeed; controller.bulletDamage = bulletDamage; controller.bulletForce = bulletForce; controller.attacksPerSecond = attacksPerSecond; controller.ammunition = ammunition; resources -= towerResourceCost; } if (overlay != null) { overlay.resources = resources; } }
private void Update() { myTower = this.gameObject.GetComponentInParent <UpgradeTowerMenu>().myTower; }