public void DrawCaveMesh(CaveMesh caveMesh) { Mesh cMesh = new Mesh(); cMesh.vertices = caveMesh.vertices.ToArray(); cMesh.triangles = caveMesh.triangles.ToArray(); cMesh.uv = caveMesh.uvs; cMesh.RecalculateNormals(); caveMeshFilter.sharedMesh = cMesh; caveMeshRenderer.gameObject.SetActive(true); DestroyImmediate(caveMeshFilter.GetComponent <MeshCollider>()); caveMeshFilter.gameObject.AddComponent <MeshCollider>(); Mesh wMesh = new Mesh(); wMesh.vertices = caveMesh.wallCaveMesh.vertices.ToArray(); wMesh.triangles = caveMesh.wallCaveMesh.triangles.ToArray(); wMesh.uv = caveMesh.wallCaveMesh.uvs; wMesh.RecalculateNormals(); wallMeshFilter.sharedMesh = wMesh; wallMeshRenderer.gameObject.SetActive(true); DestroyImmediate(wallMeshFilter.GetComponent <MeshCollider>()); wallMeshFilter.gameObject.AddComponent <MeshCollider>(); Mesh gMesh = new Mesh(); gMesh.vertices = caveMesh.groundCaveMesh.vertices; gMesh.triangles = caveMesh.groundCaveMesh.triangles; gMesh.uv = caveMesh.groundCaveMesh.uvs; gMesh.RecalculateNormals(); groundMeshFilter.sharedMesh = gMesh; groundMeshRenderer.gameObject.SetActive(true); DestroyImmediate(groundMeshFilter.GetComponent <MeshCollider>()); groundMeshFilter.gameObject.AddComponent <MeshCollider>(); }
public void convertToMeshes(OIGrid grid) { int wallHeight = _behavior._wallHeight; int seed = _behavior._seed; IXHeightMap ceilHeight; if (_behavior._ceilHeightVariation == 0) { ceilHeight = new XFlatHeightMap(wallHeight); } else { int ceilMinHeight = wallHeight; int ceilMaxHeight = wallHeight + _behavior._ceilHeightVariation; ceilHeight = new XPerlinHeightMap(ceilMinHeight, ceilMaxHeight, seed); } CaveMeshFactory ms = new CaveMeshFactory(ceilHeight); CaveMesh result = ms.create(grid, wallHeight); _behavior._ceilMeshFilter.mesh = result.map; _behavior._wallMeshFilter.mesh = result.wall; _behavior._wallMeshFilter.gameObject.GetComponent <MeshCollider>().sharedMesh = result.wall; _behavior._floorMeshFilter.mesh = result.floor; _behavior._floorMeshFilter.gameObject.GetComponent <MeshCollider>().sharedMesh = result.floor; }
public void DrawMapInEditor() { caveMesh = new CaveMesh(squareSize, caveSettings); DrawCaveMesh(caveMesh); }