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 GridCoordinateToIndexReturnCorrectValue() { var grid = new Grid(2, 3); int index = grid.CoordinateToIndex(1, 0); Assert.AreEqual(3, index); }
public float UpdateCorners() { var index00 = Grid.CoordinateToIndex(0, 0); var index01 = Grid.CoordinateToIndex(0, Grid.SizeY - 1); var index10 = Grid.CoordinateToIndex(Grid.SizeX - 1, 0); var index11 = Grid.CoordinateToIndex(Grid.SizeX - 1, Grid.SizeY - 1); corner00.position = TileHolders[index00].transform.position; corner01.position = TileHolders[index01].transform.position; corner10.position = TileHolders[index10].transform.position; corner11.position = TileHolders[index11].transform.position; return(Vector3.Distance(corner00.position, corner11.position)); }