// 보드 초기화 public void InitializeBoard() { int iBoardRow = GameData.iBoardRow, iBoardCol = GameData.iBoardCol; // 생성된 Dot이 있다면 제거 if (objBoardArray.transform.childCount > 0) { for (int i = 0; i < objBoardArray.transform.childCount; ++i) { Destroy(objBoardArray.transform.GetChild(i).gameObject); } } // 생성된 LinkLine이 있다면 제거 if (objLinkLines.transform.childCount > 0) { RemoveLinkLineAll(); } // 보드 데이터 생성 boardData = new DotObject[iBoardRow, iBoardCol]; Vector3 pos = Vector3.zero; // Dot의 위치 // 좌상 우하 순서로 Dot 생성 for (int i = 0; i < iBoardRow; ++i) { for (int j = 0; j < iBoardCol; ++j) { pos = new Vector3(-GameData.fBoardHalfWidth + j * GameData.fWidthDist, GameData.fBoardHalfHeight - i * GameData.fHeightDist, 0.00f); DotObject.CreateDot(pos, i, j, true, objBoardArray.transform, boardData); } } }
// Databoard의 빈 공간 채우기 private void FillDataBoard() { Vector3 pos; for (int i = 0; i < GameData.iBoardRow; ++i) { for (int j = 0; j < GameData.iBoardCol; ++j) { if (boardData[i, j] == null) { switch (enGravityDir) { default: case GravityDirection.GRAVITY_DOWN: pos = new Vector3(-GameData.fBoardHalfWidth + j * GameData.fWidthDist, GameData.fBoardHeight - i * GameData.fHeightDist, 0.00f); break; case GravityDirection.GRAVITY_UP: pos = new Vector3(-GameData.fBoardHalfWidth + j * GameData.fWidthDist, -GameData.fBoardHeight - i * GameData.fHeightDist, 0.00f); break; case GravityDirection.GRAVITY_LEFT: pos = new Vector3(GameData.fBoardWidth + j * GameData.fWidthDist, GameData.fBoardHalfHeight - i * GameData.fHeightDist, 0.00f); break; case GravityDirection.GRAVITY_RIGHT: pos = new Vector3(-GameData.fBoardWidth + j * GameData.fWidthDist, GameData.fBoardHalfHeight - i * GameData.fHeightDist, 0.00f); break; case GravityDirection.GRAVITY_OUTWARDS: pos = new Vector3(-GameData.fBoardHalfWidth + j * GameData.fWidthDist, GameData.fBoardHalfHeight - i * GameData.fHeightDist, 0.00f); break; } DotObject.CreateDot(pos, i, j, true, objBoardArray.transform, boardData); } } } }