// Populate board from level data file public void InitGamePieces(Pack pack, Pack.Level level) { ColorManager colorManager = FindObjectOfType <ColorManager>(); colorManager.SetPackIndex(pack.packId); SetStartPositions(); gamePieces = new GamePiece[BOARD_SIZE_X, BOARD_SIZE_Z]; Pack.Level.GP_LUT[,] pieceLU; pieceLU = level.pieceLU; for (int x = 0; x < BOARD_SIZE_X; x++) { for (int z = 0; z < BOARD_SIZE_Z; z++) { gamePieces[x, z] = Instantiate(GamePieceFromLevelLUT(pieceLU[x, z]), new Vector3(xStartPos + adjacentSpacing * (float)x, 0, zStartPos + adjacentSpacing * (float)z), Quaternion.identity); gamePieces[x, z].InitMaterials(colorManager.GetMaterials()); if (gamePieces[x, z].pieceType == GamePiece.PieceType.START) { startPiece = gamePieces[x, z] as StartPiece; } if (gamePieces[x, z].pieceType == GamePiece.PieceType.END) { endPieceList.Add(gamePieces[x, z] as EndPiece); } gamePieces[x, z].XPos = x; gamePieces[x, z].ZPos = z; gamePieces[x, z].transform.SetParent(transform, true); } } StartCoroutine(UpdatePathsAndCheckForWin()); }
public void Clear() { for (int x = 0; x < BOARD_SIZE_X; x++) { for (int z = 0; z < BOARD_SIZE_Z; z++) { DestroyImmediate(gamePieces[x, z].gameObject); } } startPiece = null; endPieceList.Clear(); }