public void GenerateWalls(Vector3 position) { var walls = Grid.GetWalls(); var doorBase = position; doorBase.x += XSize / 2f; var wall = walls.FirstOrDefault(x => x.transform.position.Equals(doorBase)); Grid.AddTile(wall); doorBase.x += 1; Grid.AddTile(walls.FirstOrDefault(x => x.transform.position.Equals(doorBase))); doorBase.x -= 2; Grid.AddTile(walls.FirstOrDefault(x => x.transform.position.Equals(doorBase))); for (int h = 1; h < 5; h++) { for (int x = 0; x < XSize; x++) { var blockPosition = position; blockPosition.x += x; blockPosition.z += ZSize; blockPosition.y += h; Instantiate(Block, blockPosition, Quaternion.identity, transform); } for (int x = 0; x < XSize; x++) { var blockPosition = position; blockPosition.x += x; blockPosition.y += h; if (x != XSize / 2 && x != XSize / 2 + 1 && x != XSize / 2 - 1 || h > 3) { Instantiate(Block, blockPosition, Quaternion.identity, transform); } else { Grid.RemoveTile(blockPosition); } } for (int z = 0; z < ZSize; z++) { var blockPosition = position; blockPosition.z += z; blockPosition.y += h; Instantiate(Block, blockPosition, Quaternion.identity, transform); } for (int z = 0; z < ZSize; z++) { var blockPosition = position; blockPosition.x += XSize; blockPosition.z += z; blockPosition.y += h; Instantiate(Block, blockPosition, Quaternion.identity, transform); } } }
public void TextureTerain(GridContainer Grid) { foreach (var tile in Grid.GetTiles()) { var random = Random.Range(0, 100); if (random < FloorChance) { tile.gameObject.GetComponent <Renderer>().material = GrassMaterial; } else { tile.gameObject.GetComponent <Renderer>().material = GroundMaterial; } } foreach (var wall in Grid.GetWalls()) { wall.gameObject.GetComponent <Renderer>().material = WallMaterial; } }