//Input check and raycast for building system private void Update() { if (GameManager.Instance.CurrentGameState == GameState.RUNNING) { if (Input.GetMouseButtonDown(0) && !_isSelected) { RaycastHit hit; Ray ray = _camera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, Mathf.Infinity, layerMask)) { PlaySfx(towerSelectionSfx); _selectedTile = hit.collider.GetComponentInParent <TowerTile>(); if (_selectedTile.isAvailable) { ShowSelectionPanel(); } else { ShowUpgradePanel(); } _isSelected = true; } } else if (Input.GetMouseButtonDown(1) && _isSelected) { ClosePanel(); PlaySfx(towerSelectionSfx); } } }
private void ClosePanel() { if (_selectedTile.tower != null) { _selectedTile.tower.DisableDome(); } _isSelected = false; _selectedTile = null; towerSelectionPanel.gameObject.SetActive(false); towerUpgradePanel.gameObject.SetActive(false); }
public void SetTower(TowerTile towerTile, Tower tower) { this.towerTile = towerTile; selectedTower = tower; var towerBlocks = selectedTower.GetBlocks(); for (var blockIndex = 0; blockIndex < towerBlocks.Count; blockIndex++) { blocks[blockIndex].SetBlock(towerBlocks[blockIndex]); } ShowTowerInfo(); ShowPanel(); }
public void SetTowerTile(TowerTile towerTile) { selectedTile = towerTile; ShowPanel(); }
public void Init(TowerTile tile) { _tile = tile; transform.position = Camera.main.WorldToScreenPoint(_tile.transform.position); }