public void ChooseDifficulty(int level) { difficulty = (Difficulty)level; switch (difficulty) { case Difficulty.Doctor: layer = 4; trap = 5; target = 2; opportunity = 10; tipsButton[0].SetActive(true); tipsButton[1].SetActive(true); tipsButton[2].SetActive(true); toggleDoctor.gameObject.SetActive(true); toggleDoctor.isOn = true; adventureMode = AdventureMode.Doctor; break; case Difficulty.Newbie: layer = 4; trap = 5; target = 2; opportunity = 2; gridGruop.localScale = Vector3.one; break; case Difficulty.Trainee: layer = 5; trap = 8; target = 4; opportunity = 3; gridGruop.localScale = Vector3.one; break; case Difficulty.Elite: layer = 5; trap = 8; target = 5; opportunity = 4; gridGruop.localScale = Vector3.one; break; case Difficulty.Expert: layer = 5; trap = 8; target = 6; opportunity = 5; gridGruop.localScale = Vector3.one; break; case Difficulty.Master: layer = 6; trap = 12; target = 9; opportunity = 7; gridGruop.localScale = new Vector3(0.84f, 0.84f, 0.84f); break; case Difficulty.Crazy: layer = 6; trap = 13; target = 11; opportunity = 9; gridGruop.localScale = new Vector3(0.84f, 0.84f, 0.84f); break; case Difficulty.Wakaka: layer = 7; trap = 26; target = 11; opportunity = 11; gridGruop.localScale = new Vector3(0.7f, 0.7f, 0.7f); break; } textLevel.text = "Lv. " + level; textDifficultyEng.text = difficulty.ToString(); textDifficultyCht.text = ((DifficultyCht)level).ToString(); // 設置難度之後要重新排列網格 countHexagonGrids = HexagonMesh.CalculateHexGrids(layer); rotateMap = false; gridGruop.localRotation = Quaternion.identity; // 排列過程中不要旋轉 for (int i = 0; i < HexagonMesh.grids.Length; i++) { if (i < countHexagonGrids) { ArrangeGrid(i); } else { Vector3 gridCoordinate = new Vector3(999, 999, 999); HexagonMesh.grids[i].gridCoordinate = gridCoordinate; HexagonMesh.grids[i].transform.localPosition = new Vector3(7000, 7000, 7000); } } rotateMap = true; }
// 建置六角網格 void CreateHexagonalGrids() { HexagonMesh.grids = new HexGrid[HexagonMesh.CalculateHexGrids(maxLayer)]; HexagonMesh.gridsIndex = new List <int>(); for (int i = 0; i < HexagonMesh.grids.Length; i++) { HexagonMesh.gridsIndex.Add(i); HexagonMesh.grids[i] = Instantiate(gridPrefab).GetComponent <HexGrid>(); HexagonMesh.grids[i].indexGrid = i; HexagonMesh.grids[i].name = "Hex Grid Button " + (i); HexagonMesh.grids[i].transform.SetParent(gridGruop); HexagonMesh.grids[i].transform.localScale = new Vector3(1, 1, 1); HexagonMesh.grids[i].gridCoordinate = new Vector3(1, 1, 1); HexagonMesh.grids[i].transform.localRotation *= Quaternion.Euler(0, 0, Random.Range(0, 6) * 60); HexagonMesh.grids[i].manager = this; HexagonMesh.grids[i].themeManager = this.themeManager; HexagonMesh.grids[i].FirstTryEvent += OnFirstTry; } }