private void UpdateReachableTileVisuals(List <Tile <MyTile> > reachableTiles) { foreach (GameObject g in reachableTilesMarkers) { Destroy(g); } reachableTilesMarkers.Clear(); foreach (Tile <MyTile> tile in reachableTiles) { GameObject tileObj = Instantiate(reachableMarker, tile.CartesianPosition, Quaternion.identity); tileObj.transform.position += new Vector3(0, 0.1f, 0); //0.1f = explicitly set y-Coord of the tile so it is slightly above the tiles of the map reachableTilesMarkers.Add(tileObj); } List <Vector3Int> borderEdges = hexMap.GetEdgePositions.TileBorders(reachableTiles); foreach (var edgePos in borderEdges) { EdgeAlignment orientation = HexUtility.GetEdgeAlignment(edgePos); float angle = HexUtility.anglebyEdgeAlignment[orientation]; GameObject edgeObj = Instantiate(edgeReachableBorder, HexConverter.EdgeCoordToCartesianCoord(edgePos), Quaternion.Euler(0, angle, 0)); reachableTilesMarkers.Add(edgeObj); } }
private void UpdateVisionMarkers(IEnumerable <Vector3Int> visibleTiles) { ClearVisionMarkers(); foreach (Vector3Int tilePos in visibleTiles) { GameObject visionObj = Instantiate(tileVisionMarker, HexConverter.TileCoordToCartesianCoord(tilePos, 0.1f), Quaternion.identity); visionMarkers.Add(visionObj); } List <Vector3Int> borderEdges = hexMap.GetEdgePositions.TileBorders((visibleTiles)); foreach (Vector3Int edgePos in borderEdges) { EdgeAlignment orientation = HexUtility.GetEdgeAlignment(edgePos); float angle = HexUtility.anglebyEdgeAlignment[orientation]; GameObject edgeObj = GameObject.Instantiate( edgeVisionBorder, HexConverter.EdgeCoordToCartesianCoord(edgePos), Quaternion.Euler(0, angle, 0) ); visionMarkers.Add(edgeObj); } }
private void UpdateVisionMarkers(IEnumerable <Vector3Int> visibleTiles) { foreach (GameObject g in visionMarkers) { Destroy(g); } visionMarkers.Clear(); foreach (var tilePos in visibleTiles) { GameObject tileObj = Instantiate(tileVisionMarker, HexConverter.TileCoordToCartesianCoord(tilePos, 0.1f), Quaternion.identity); //0.1f = explicitly set y-Coord of the tile so it is slightly above the tiles of the map visionMarkers.Add(tileObj); } List <Vector3Int> borderEdges = hexMap.GetEdgePositions.TileBorders(visibleTiles); foreach (var edgePos in borderEdges) { EdgeAlignment orientation = HexUtility.GetEdgeAlignment(edgePos); float angle = HexUtility.anglebyEdgeAlignment[orientation]; GameObject edgeObj = Instantiate(edgeVisionBorder, HexConverter.EdgeCoordToCartesianCoord(edgePos), Quaternion.Euler(0, angle, 0)); visionMarkers.Add(edgeObj); } }