public void GenerateFloor() { var spawnManager = EnemySpawnManager.instance; var renderer = FloorPrefab.GetComponent <SpriteRenderer> (); float floorWidth = GetTileWidth(renderer.sprite); float floorHeight = GetTileHeight(renderer.sprite); for (int i = 0; i < RoomSize.width; i++) { var x = RoomSize.x + i * floorWidth; for (int j = 0; j < RoomSize.height; j++) { var y = RoomSize.y + j * floorHeight; var position = new Vector2(x, y); var tileClone = (GameObject)Instantiate(FloorPrefab, position, Quaternion.identity); tileClone.transform.SetParent(transform); var index = GetSpriteIndex(); tileClone.GetComponent <SpriteRenderer> ().sprite = FloorSprites [index]; var coord = new Vector2i(i, j); var tile = GetTile(tileClone); tile.Coordinates = coord; tile.NormalSprite = FloorSprites [index]; tile.SelectableSprite = SelectableFloorSprites.Length > 0 ? SelectableFloorSprites [index] : null; SetBounds(tile); if (coord.X <= enemySpawnArea.X - 1 || coord.Y <= enemySpawnArea.Y - 1 || coord.X >= (RoomSize.width - enemySpawnArea.X) || coord.Y >= (RoomSize.height - enemySpawnArea.Y)) { tile.Selectable = false; if (spawnManager) { spawnManager.RegisterTile(tile); } } else { cells.Add(coord, tile); } } } }
public void Add(Wall wall, Vector2i coord) { wallList.Add(coord, wall); WallsInScene.Add(wall); }