public void GenerateMap() { if (_mapDisplay == null) { _mapDisplay = GetComponent <MapDisplay>(); } float[,] noiseMap = Noise.GenerateNoiseMap(mapSize, noiseData, island, islandSizeMultiplier); _netMesh = MeshGenerator.GenerateTriangulatedMesh(mapSize, distributionData); if (island) { _meshData = MeshGenerator.GenerateMeshData(_netMesh, noiseData.meshHeightCurve, noiseMap, noiseData.meshHeightMultiplier, islandMin); _netMesh = _meshData.netMesh; } _meshData = MeshGenerator.GenerateMeshData(_netMesh, noiseData.meshHeightCurve, noiseMap, noiseData.meshHeightMultiplier); Color[] colors = _mapDisplay.GenerateColors(_netMesh, noiseMap); _meshData.AddColors(colors); UnityEngine.Mesh m = _meshData.CreateMesh(); _mapDisplay.DisplayMesh(m); if (waterGenerator != null) { if (generateWater) { waterGenerator.Init(mapSize, waterLevel, distributionData); } else { waterGenerator.Clear(); } } }
public static Mesh GetMeshFromMesh(UnityEngine.Mesh m) { Polygon polygon = new Polygon(); foreach (Vector3 meshVertex in m.vertices) { polygon.Add(new Vertex(meshVertex.x, meshVertex.z)); } ConstraintOptions constraintOptions = new ConstraintOptions(); constraintOptions.ConformingDelaunay = true; TriangleNet.Mesh mesh = polygon.Triangulate(constraintOptions) as TriangleNet.Mesh; return(mesh); }
public void DisplayMesh(UnityEngine.Mesh mesh) { _meshFilter.mesh = mesh; _meshRenderer.material = material; }