private void Proc() { if (meshChunks == null) { return; } for (int i = 0; i < meshChunks.Count; i++) { meshingMaterials[i] = VoxTerrainMeshingTool.GreedyMeshing(meshChunks[i]); coliderMeshMaterials[i] = VoxTerrainMeshingTool.GreedyMeshing_ColiderMesh(meshChunks[i]); } }
// 更新指定Chunk private void UpdateChunk(_16x256x16VoxChunk chunk) { if (!HasTheChunk(chunk)) { return; } MeshingMaterial meshMat = VoxTerrainMeshingTool.GreedyMeshing(chunk); MeshingMaterial coliderMeshMat = VoxTerrainMeshingTool.GreedyMeshing_ColiderMesh(chunk); Mesh mesh = meshMat.ToMesh(); Mesh coliderMesh = coliderMeshMat.ToMesh(); var oldMeshObj = GetMeshObj(chunk.UniqueID); DestroyImmediate(oldMeshObj); CreateMeshObj(chunk, mesh, coliderMesh); }
public Mesh ToMesh() { return(VoxTerrainMeshingTool.CreateMesh(vertices, triangles, uvs)); }