public IEnumerator Init(Grid grid, LevelColorScheme levelColorScheme) { if (Grid != null) { Debug.Log("Level is already created!"); yield break; } Grid = grid; TileHolders = new TileHolder[Grid.Size]; var start = this.transform.position; var wait = new WaitForSeconds(timeOnRowCreate); for (int i = 0; i < Grid.SizeX; i++) { for (int j = 0; j < Grid.SizeY; j++) { TileHolders[Grid.CoordinateToIndex(i, j)] = Instantiate <TileHolder>(tilePrefab, transform); TileHolders[Grid.CoordinateToIndex(i, j)].transform.position = new Vector3(i, 0, j) * spacing; TileHolders[Grid.CoordinateToIndex(i, j)].Init(Grid[i, j], this, levelColorScheme); } yield return(wait); } }
public void Init(Tile tile, GridHolder gridHolder, LevelColorScheme colorScheme) { Tile = tile; GridHolder = gridHolder; _colorScheme = colorScheme; Tile.OnTileHeightChanged += OnTileHeightChanged; Tile.OnTileFall += OnTileFall; OnTileHeightChanged(Tile.Height, 0); }