protected override void ThreadFunction() { generatedMesh = new ThreadMesh(); generatedMesh.name = "Terrain Mesh"; BuildMesh(); }
private void BuildMesh() { MarchingCubes marcher = new MarchingCubes(); marcher.voxelsToMarch = chunkVoxelArray; marcher.meshOffset = chunkCoordinates; generatedMesh = marcher.March(); }
private void UpdateMesh(ThreadMesh m) { Mesh generatedMesh = new Mesh(); generatedMesh.name = m.name; generatedMesh.vertices = m.vertices.ToArray(); generatedMesh.triangles = m.triangles.ToArray(); generatedMesh.colors = m.colors.ToArray(); generatedMesh.RecalculateNormals(); GetComponent <MeshFilter>().sharedMesh = generatedMesh; GetComponent <MeshCollider>().sharedMesh = generatedMesh; }
public ThreadMesh March() { marchedMesh = new ThreadMesh(); for (int j = 0; j < voxelsToMarch.GetLength(1) - 1; j++) { for (int i = 0; i < voxelsToMarch.GetLength(0) - 1; i++) { for (int k = 0; k < voxelsToMarch.GetLength(2) - 1; k++) { generateMeshAt(i, j, k); } } } return(marchedMesh); }