Example #1
0
    private MapMeshChunk[] GetHexMeshChunks(
        HexGrid <Hex> grid,
        float hexOuterRadius
        )
    {
        MapMeshChunk[] result = new MapMeshChunk[
            HexMeshChunkRows * HexMeshChunkColumns
                                ];

        for (int i = 0; i < result.Length; i++)
        {
            result[i] = MapMeshChunk.CreateEmpty(this.transform);
        }

        for (int hexRow = 0; hexRow < HexOffsetRows; hexRow++)
        {
            for (int hexColumn = 0; hexColumn < HexOffsetColumns; hexColumn++)
            {
                Hex hex = grid.GetElement(hexColumn, hexRow);

                int hexChunkColumn =
                    hexColumn / HexMeshConstants.CHUNK_SIZE_Z;

                int hexChunkRow =
                    hexRow / HexMeshConstants.CHUNK_SIZE_X;

                int hexLocalColumn =
                    hexColumn % HexMeshConstants.CHUNK_SIZE_X;

                int hexLocalRow =
                    hexRow % HexMeshConstants.CHUNK_SIZE_Z;

                result[
                    (hexChunkRow * HexMeshChunkColumns) +
                    hexChunkColumn
                ].AddHex(
                    (hexLocalRow * HexMeshConstants.CHUNK_SIZE_Z) +
                    hexLocalColumn,
                    hex
                    );
            }
        }

        return(result);
    }