private void Update() { if (Input.GetKeyDown(KeyCode.Escape) && currentTile != null) { GameObjectHighlighter.Deselect(startColor, currentTile); } }
public void SelectAvailableTile() { LocalPosition unitPosition = PositionConverter.ToLocalCoordinates(selectedUnit.worldPosition); selectedUnit.availableMovementTiles = new List <Node>(); Node currentTile = map.graph[unitPosition.x, unitPosition.y]; GetAvailableMovementTiles(selectedUnit.availableMovementTiles, currentTile); foreach (var item in selectedUnit.availableMovementTiles) { Collider[] colliders; WorldPosition tileWorldPos = PositionConverter.ToWorldCoordinates(new LocalPosition(item.x, item.y)); colliders = Physics.OverlapSphere(tileWorldPos.ToVector3(), 0.125f /*Radius*/); if (colliders.Length >= 1) { foreach (var collider in colliders) { var go = collider.gameObject; if (go.name.StartsWith("Hexagon")) { if (map.tiles[item.x, item.y] != (int)TileTypes.SWAMP) { selectedUnit.startColor = go.GetComponent <Renderer>().material.GetColor("_Color"); selectedUnit.availableTileColor = selectedUnit.startColor; //TODO: think about other variant of colorized tile selectedUnit.availableTileColor.g = 0.6f; selectedUnit.availableTileColor.b = 0.4f; GameObjectHighlighter.Select(selectedUnit.startColor, selectedUnit.availableTileColor, go.GetComponent <Renderer>()); } } } } } }