private void ReadBoard() { var tilemaps = _grid.GetComponentsInChildren <Tilemap>(); foreach (var tileMap in tilemaps) { if (tileMap.name == "Board") { _board = tileMap; break; } } if (_board == null) { throw new Exception("No Board tilemap found"); } _board.CompressBounds(); foreach (var position in _board.cellBounds.allPositionsWithin) { if (_board.GetTile(position) != null) { _boardTilesCubeCoordinates.Add(CoordinateUtils.OffsetToCube(position)); } } }
void Update() { if (Input.GetMouseButtonDown(0)) { Vector3 pos = Camera.main.ScreenToWorldPoint(Input.mousePosition); var board = GridManager.Instance.Board; var tilePosition = board.WorldToCell(pos); var tile = board.GetTile(tilePosition); if (tile != null) { GameManager.Instance.TileClicked(CoordinateUtils.OffsetToCube(tilePosition)); } } }
private IEnumerator SpawnStartingGems() { var tilemaps = _grid.GetComponentsInChildren <Tilemap>(); Tilemap startingPoints = null; foreach (var tileMap in tilemaps) { if (tileMap.name == "StartingPoints") { startingPoints = tileMap; } } if (startingPoints == null) { throw new Exception("No StartingPoints tilemap found"); } startingPoints.CompressBounds(); var coroutines = new List <Coroutine>(); foreach (var position in startingPoints.cellBounds.allPositionsWithin) { var cubeCoord = CoordinateUtils.OffsetToCube(position); if (startingPoints.GetTile(position) == _redGemTile) { coroutines.Add(StartCoroutine(GemPlacementManager.Instance.PutGem(GemType.Red, cubeCoord))); } if (startingPoints.GetTile(position) == _blueGemTile) { coroutines.Add(StartCoroutine(GemPlacementManager.Instance.PutGem(GemType.Blue, cubeCoord))); } } Destroy(startingPoints.gameObject); EffectsManager.Instance.PlayAppearSound(); foreach (var coroutine in coroutines) { yield return(coroutine); } GameManager.Instance.BoardInitialized(); }