/// <summary> /// 单元格添加到指定的块 /// </summary> /// <param name="widthIndex"></param> /// <param name="heightIndex"></param> /// <param name="cell"></param> private void AddCellToChunk(int widthIndex, int heightIndex, HexagonCell cell) { int chunkX = widthIndex / HexagonGrid.chunkSizeWidth; int chunkZ = heightIndex / HexagonGrid.chunkSizeHeight; HexagonGridChunk chunk = this.chunks [chunkX + chunkZ * this.chunkCountWidth]; int localX = widthIndex - chunkX * HexagonGrid.chunkSizeWidth; int localZ = heightIndex - chunkZ * HexagonGrid.chunkSizeHeight; chunk.AddCell(localX + localZ * HexagonGrid.chunkSizeWidth, cell); }
/// <summary> /// /// </summary> private void CreateChunks() { this.chunks = new HexagonGridChunk[this.chunkCountWidth * this.chunkCountHeight]; for (int z = 0, i = 0; z < this.chunkCountHeight; z++) { for (int x = 0; x < this.chunkCountWidth; x++) { HexagonGridChunk chunk = chunks [i++] = Instantiate <HexagonGridChunk> (chunkPrefab); chunk.transform.SetParent(transform); } } }