void AddToChunk(int x, int z, HexCell cell) { int chunkX = x / HexMetrics.chunkWidth; int chunkZ = z / HexMetrics.chunkHeight; HexGridChunk chunk = chunks[chunkX + chunkZ * chunkCountX]; int localX = x - (chunkX * HexMetrics.chunkWidth); int localZ = z - (chunkZ * HexMetrics.chunkHeight); chunk.AddCell(localX + localZ * HexMetrics.chunkWidth, cell); }
void AddCellToChunk(int x, int z, HexCell cell) { int chunkX = x / HexMetrics.chunkSizeX; int chunkZ = z / HexMetrics.chunkSizeZ; HexGridChunk chunk = chunks[chunkX + chunkZ * chunkCountX]; int localX = x - chunkX * HexMetrics.chunkSizeX; int localZ = z - chunkZ * HexMetrics.chunkSizeZ; chunk.AddCell(localX + localZ * HexMetrics.chunkSizeX, cell); }
private void AddCellToChunk(int x, int z, HexCell cell) { int chunkX = x / HexMetrics.CHUNK_SIZE_X; int chunkZ = z / HexMetrics.CHUNK_SIZE_Z; HexGridChunk chunk = chunks[chunkX + chunkZ * chunkCountX]; int localX = x - chunkX * HexMetrics.CHUNK_SIZE_X; int localZ = z - chunkZ * HexMetrics.CHUNK_SIZE_Z; chunk.AddCell(localX + localZ * HexMetrics.CHUNK_SIZE_X, cell); }
void AddCellToChunk(int x, int z, HexCell cell) { int chunkX = x / HexMetrics.chunkSizeX;//делением нацело находим координаты нужного чанка int chunkZ = z / HexMetrics.chunkSizeZ; HexGridChunk chunk = chunks[chunkX + chunkZ * chunkCountX]; int localX = x - chunkX * HexMetrics.chunkSizeX;//нахождение локальных координат внутри конкретного чанка int localZ = z - chunkZ * HexMetrics.chunkSizeZ; chunk.AddCell(localX + localZ * HexMetrics.chunkSizeX, cell); }
void AddCellToChunk(int x, int y, HexCell cell) { int chunkX = x / HexMetrics.chunkSizeX; int chunkY = y / HexMetrics.chunkSizeY; HexGridChunk chunk = chunks [chunkX + chunkY * chunkCountX]; int localX = x - chunkX * HexMetrics.chunkSizeX; int localY = y - chunkY * HexMetrics.chunkSizeY; chunk.AddCell(localX + localY * HexMetrics.chunkSizeX, cell); }
/// <summary> /// 把六边形添加到对应的网格块下 /// </summary> /// <param name="x"></param> /// <param name="z"></param> /// <param name="cell"></param> void AddCellToChunk(int x, int z, HexCell cell) { // 计算出这个六边形属于哪个网格块 int chunkX = x / HexMetrics.chunkSizeX; int chunkZ = z / HexMetrics.chunkSizeZ; HexGridChunk chunk = chunks[chunkX + chunkZ * chunkCountX]; // 计算出这个六边形是该网格块中的第几个 int localX = x - chunkX * HexMetrics.chunkSizeX; int localZ = z - chunkZ * HexMetrics.chunkSizeZ; chunk.AddCell(localX + localZ * HexMetrics.chunkSizeX, cell); }
private void AddCellToChunk(int x, int z, HexCell hexCell) { int chunkX = x / HexMetrics.ChunkSizeX; int chunkZ = z / HexMetrics.ChunkSizeZ; int index = (chunkZ * m_chunkCountX) + chunkX; HexGridChunk chunk = m_gridChunks[index]; int localX = x - chunkX * HexMetrics.ChunkSizeX; int localZ = z - chunkZ * HexMetrics.ChunkSizeZ; chunk.AddCell((localZ * HexMetrics.ChunkSizeX) + localX, hexCell); }
/// <summary> /// 通过cell在数组中的坐标计算后,将其分配到对应的chunk中 /// </summary> /// <param name="x">cell在整体数组中的横坐标</param> /// <param name="z">cell在整体数组中的纵坐标</param> /// <param name="cell">cell自身的实例</param> private void AddCellToChunk(int x, int z, HexCell cell) { //通过cell整体数组的横纵坐标,计算出cell属于哪个chunk int chunkX = x / HexMetrics.chunkSizeX; int chunkZ = z / HexMetrics.chunkSizeZ; //通过计算得到的坐标,获取对应chunk的实例 HexGridChunk chunk = chunks[chunkX + chunkZ * chunkCountX]; //通过cell整体数组坐标,计算出其在对应chunk数组中的下标 int localX = x - chunkX * HexMetrics.chunkSizeX; int localZ = z - chunkZ * HexMetrics.chunkSizeZ; //得到下标后,将cell实例添加到对应chunk的数组中 chunk.AddCell(localX + localZ * HexMetrics.chunkSizeX, cell); }
void CellToChunk(int x, int z, HexCell cell) { int chunkX = x / width; int chunkZ = z / height; HexGridChunk tmpChunk = chunks[chunkZ * chunkCountX + chunkX]; int cellOfChunkX = x - x / width * width; int cellOfChunkZ = z - z / height * height; if (cellOfChunkZ * width + cellOfChunkX == 0) { tmpChunk.transform.position = cell.transform.position; } tmpChunk.AddCell(cellOfChunkZ * width + cellOfChunkX, cell); cell.SetParentChunk(tmpChunk); }
/// <summary> /// 添加单元到地图块 /// </summary> /// <param name="chunkId">地图块编号</param> /// <param name="chunkIndex">地图块索引</param> /// <param name="cellIndex">单元索引</param> /// <param name="cell">单元</param> public void AddCellToChunk(int chunkId, int chunkIndex, int cellIndex, Entity cell) { HexGridChunk chunk = chunks[chunkId]; chunk.AddCell(chunkIndex, cellIndex, cell); }