private void CreateBoard() { Vector3 offset = transform.position - new Vector3(board.dimension * board.distance / 2.0f - 1f, board.dimension * board.distance / 2.0f + 5f, 0); System.Random rand = new System.Random(); for (int i = 0; i < board.dimension; i++) { for (int j = 0; j < board.dimension; j++) { GameObject newTile = Instantiate(board.tilePrefab); List <Sprite> possibleSprites = new List <Sprite>(board.sprites); if (board.BLOCK <= 0) { possibleSprites.Remove(board.sprites[5]); } Sprite left1 = board.GetSpriteAt(j - 1, i); Sprite left2 = board.GetSpriteAt(j - 2, i); if (left1 != null && left1 == left2) { possibleSprites.Remove(left1); } Sprite down1 = board.GetSpriteAt(j, i - 1); Sprite down2 = board.GetSpriteAt(j, i - 2); if (down1 != null && down1 == down2) { possibleSprites.Remove(down1); } SpriteRenderer renderer = newTile.GetComponent <SpriteRenderer>(); int num = rand.Next(possibleSprites.Count); renderer.sprite = possibleSprites[num]; if (renderer.sprite == board.sprites[5]) { board.BLOCK--; } TileController tile = newTile.AddComponent <TileController>(); tile.SetPosition(new Vector2Int(j, i)); newTile.transform.SetParent(transform); newTile.transform.position = new Vector3(j * board.distance, i * board.distance, 0) + offset; board.pos[j, i] = newTile.transform.position; board.allTiles[j, i] = newTile; } } }