void Update() { towerAttached = FindObjectOfType <GameManagerScript>().HasTowerAttached(); mousePosition = Input.mousePosition; canBePlaceOnWater = FindObjectOfType <Tower>().IsAbleToPlaceOnWater(); if (mousePosition != lastMousePosition && !isPlaced) { Vector3 mousePositionWorld = Camera.main.ScreenToWorldPoint(mousePosition); target = GetClosedGridPosition(mousePositionWorld); transform.position = new Vector3(target.position.x, target.position.y, -4); GridAlignScript.TileGenre currentTileGenre = gridAlignScript.GetTile(target)._genre; if (currentTileGenre == GridAlignScript.TileGenre.Blocked || currentTileGenre == GridAlignScript.TileGenre.Path) { if (currentTileGenre == GridAlignScript.TileGenre.Water && !canBePlaceOnWater) { overlay.color = new Color(255, 0, 0, 0.3f); canBePlaced = false; } overlay.color = new Color(255, 0, 0, 0.3f); canBePlaced = false; } else if (currentTileGenre == GridAlignScript.TileGenre.Valid && !canBePlaceOnWater) { overlay.color = new Color(0, 255, 0, 0.3f); canBePlaced = true; } else if (currentTileGenre == GridAlignScript.TileGenre.Water && canBePlaceOnWater) { overlay.color = new Color(0, 255, 0, 0.3f); canBePlaced = true; } } if (isPlaced) { overlay.color = new Color(0, 0, 0, 0); } if (Input.GetKeyDown(KeyCode.A)) { UnPlace(); } lastMousePosition = mousePosition; }
public Tile(GameObject obj, GridAlignScript.TileGenre genre) { _obj = obj; _genre = genre; }