// Fonction qui remplace une tuile existante par un nouveau type de tuile public void ReplaceTile(TileCoordinates deadTileCoords, int newTileType, out GridTile newTile) { GridTile deadTile = _gameGridTiles[deadTileCoords.tileX, deadTileCoords.tileY]; float tileWidth = deadTile.tileDimensions.x; // Assignation du bon prefab et spawnPos GameObject tilePrefab = GetTileFromID(newTileType); Vector3 spawnPos = deadTile.transform.position; // Instantiation GameObject go = Instantiate(tilePrefab, spawnPos, Quaternion.identity); // TEMP Instantiation sous le DebugManager if (DebugManager.instance != null) { go.transform.SetParent(DebugManager.instance.gridDebug.transform); } // Assignation des paramètres sur les OBJETS de tuile newTile = go.GetComponent <GridTile>(); newTile.tileX = deadTile.tileX; newTile.tileY = deadTile.tileY; newTile.tileName = deadTile.tileName; newTile.tileType = newTileType; newTile.PlanetHeat = deadTile.PlanetHeat; newTile.InitializeTile(deadTile.tileDimensions, _currentGridMode, _currentGridInfo); newTile.TransferObjectList(deadTile.CurrentObjectsInTile); // Remplacement de la tuile dans les arrays2D _gameGrid[deadTile.tileX, deadTile.tileY] = newTileType; _gameGridTiles[deadTile.tileX, deadTile.tileY] = newTile; deadTile.TriggerNeighbourTilesUpdates(); deadTile.DisableTile(); }
void GenerateTiles() { for (int z = 0, i = 0; z < ChunkZSize; z++) { for (int x = 0; x < ChunkXSize; x++, i++) { GridTile t = tiles[i] = Instantiate(tilePrefab); float o = GridMetrics.gridTileOffset; t.transform.position = new Vector3(x * o + o / 2f, 0, z * o + o / 2f); t.transform.parent = transform; t.InitializeTile(x, z, i); } } }
public void InstantiateGridTiles() { tiles = new GridTile[tG.ChunkXSize * tG.ChunkZSize]; float chunkXOffset = tG.ChunkXSize * CoordX * GridMetrics.gridTileOffset; float chunkZOffset = tG.ChunkZSize * CoordZ * GridMetrics.gridTileOffset; int tilesPerChunk = tG.ChunkXSize * tG.ChunkZSize; int tilesBeforeChunk = tilesPerChunk * id; for (int z = 0, i = 0; z < tG.ChunkZSize; z++) { for (int x = 0; x < tG.ChunkXSize; x++, i++) { GridTile t = tiles[i] = Instantiate(tG.tilePrefab); t.transform.position = new Vector3( x * GridMetrics.gridTileOffset + GridMetrics.gridTileOffset / 2f + chunkXOffset, 0, z * GridMetrics.gridTileOffset + GridMetrics.gridTileOffset / 2f + chunkZOffset); t.transform.parent = transform; t.InitializeTile(x + tG.ChunkXSize * CoordX, z + tG.ChunkZSize * CoordZ, tilesBeforeChunk + i); } } }