void MakeCube(float cubeScale, Vector3 cubePos, int x, int z, VoxelMeshDataRW data) { for (int i = 0; i < 6; i++) { if (data.GetNeighbor(x, z, (Direction)i) == 0) { MakeFace((Direction)i, cubeScale, cubePos); } } }
void GenerateVoxelMesh(VoxelMeshDataRW data) { vertices = new List <Vector3>(); triangles = new List <int>(); for (int z = 0; z < data.Depth; z++) { for (int x = 0; x < data.Width; x++) { if (data.GetCell(x, z) == 0) { continue; } MakeCube(adjScale, new Vector3(x * scale, 0, z * scale), x, z, data); } } }