private void Update() { float dy = 0.1f; if (viewTiles && Tiles.Count > tileIndex && tileIndex >= 0) { var tile = Tiles[tileIndex]; float height(int x, int y) { return(tile.Height(x, y) + dy); } for (int x = tile.Corner.x; x < tile.Corner.x + tile.TileSize - 1; x++) { for (int y = tile.Corner.y; y < tile.Corner.y + tile.TileSize - 1; y++) { Drawings.DrawSquare( new Vector3(x, height(x, y), y), new Vector3(x + 1, height(x + 1, y), y), new Vector3(x + 1, height(x + 1, y + 1), y + 1), new Vector3(x, height(x, y + 1), y + 1), Color.green ); } } } if (viewDiscomfort && Tiles.Count > tileIndex && tileIndex >= 0) { if (!drawn) { tilemap.BuildTexture(TextureGenerator.TextureFromMatrix(g, Color.clear, Color.red)); tilemap.BuildMesh(h); drawn = true; } } if (viewBorders && Tiles.Count > tileIndex && tileIndex >= 0) { var tile = Tiles[tileIndex]; int i = 0; foreach (var border in tile.Borders) { if (i + 1 > borderColors.Count) { borderColors.Add(new Color( Random.Range(0, 0.5f), Random.Range(0, 0.5f), Random.Range(0, 0.5f)) ); } var c = borderColors[i++]; DrawBorder(border, c); } } if (viewNeighborBorders && Tiles.Count > tileIndex && tileIndex >= 0) { int i = 0; var tile = Tiles[tileIndex]; foreach (var border in tile.Borders) { if (i + 1 > borderColors.Count) { borderColors.Add(new Color(Random.value, Random.value, Random.value)); } var c = borderColors[i++]; DrawBorder(border, c); foreach (var kvp in border.PathByNeighbor) { Drawings.DrawPath(kvp.Value, tile.Height(kvp.Key.Center), Color.blue); } } } }