protected override void CheckIfInTile() { base.CheckIfInTile(); if (_currentDropZone != null) { _tileText.enabled = false; return; } if (_isInTile) { _tileText.text = GridCoords.GetTileName(_currentTile); _tileText.enabled = true; } else { _tileText.enabled = false; } }
/* FONCTION DE GÉNÉRATION DE TUILES * - Génère une grille de tuiles physiques dans le world * - Assigne les dimensions d'une tuile pour que la grille reste confinée en tout temps dans l'espace de jeu * - La largeur (mapWidth) détermine la grosseur des tuiles, en fonction du nombre de tuiles en X */ private void GenerateMapTiles() { float actualWidth = mapWidth; // Assigner le size de la grille par rapport à la grosseur de la world map, si elle est trouvable if (_worldMap != null) { actualWidth = _worldMap.GetComponent <SpriteRenderer>().size.x; } float tileWidth = 0.03125f * 19f; actualWidth = (tileWidth * mapSizeX); //float tileWidth = actualWidth / mapSizeX; // Dimensions d'une tuile en unités de unity Vector3 spawnOffset = new Vector3(actualWidth / 2f, (tileWidth * mapSizeY) / -2f, 0f); spawnOffset.x -= 0.03125f; spawnOffset.y += 0.03125f; char startChar = 'A'; startChar--; for (int x = 0; x < mapSizeX; x++) { for (int y = 0; y < mapSizeY; y++) { // Instanciation des tuiles, à partir du array 2D de ints (voir fonction suivante) GameObject tilePrefab = GetTileFromID(_gameGrid[x, y]); Vector3 spawnPos = new Vector3(x * tileWidth, -y * tileWidth, 0f); spawnPos -= spawnOffset; // Assignation des tuiles et initialisation 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 GridTile gt = go.GetComponent <GridTile>(); gt.tileX = x; gt.tileY = y; gt.tileType = _gameGrid[x, y]; //gt.InitializeTile(new Vector2(tileWidth, tileWidth), _currentGridMode); gt.tileName = GridCoords.GetTileName(new TileCoordinates(x, y)); // Ajout de la tuile à l'array2D de tuiles _gameGridTiles[x, y] = gt; } } // Assignation des informations de la grille et appel de l'ACTION de nouvelle grille Bounds newBounds = new Bounds(Vector3.zero, new Vector3(actualWidth, tileWidth * mapSizeY, 0f)); _currentGridInfo = new GridInfo(_gameGridTiles, new Vector2Int(mapSizeX, mapSizeY), newBounds, tileWidth, evenSprite, oddSprite); foreach (var tile in _gameGridTiles) { tile.InitializeTile(new Vector2(tileWidth, tileWidth), _currentGridMode, _currentGridInfo); //bool addHeat = false; //if (tile.tileX == 0) // addHeat = true; //else if (tile.tileY == 0) // addHeat = true; //else if (tile.tileX == mapSizeX - 1) // addHeat = true; //else if (tile.tileY == mapSizeY - 1) // addHeat = true; //if (addHeat) // tile.AddPlanetHeat(1); } }