// Update is called once per frame void Update() { for (int i = 0; i < waveVerts.Length; i++) { vert_x = (double)waveVerts[i].x; vert_y = (double)waveVerts[i].y; vert_z = (double)waveVerts[i].z; oceanMap = oceanAmpl * (float)oceanNoise.Noise(vert_x / oceanSpread + wave, vert_y / oceanSpread, vert_z / oceanSpread) + 1.0f; waveVerts[i] = oceanVerts[i] * oceanMap; } oceanMesh.vertices = waveVerts; oceanMesh.RecalculateNormals(); oceanMesh.Optimize(); wave += current; }
void GenerateTerrain() { // Modulate terrain for (int i = 0; i < terrainVerts.Length; i++) { vert_x = (double)terrainVerts[i].x; vert_y = (double)terrainVerts[i].y; vert_z = (double)terrainVerts[i].z; // Perlin Noise for terrain elevation terrainMap = Mathf.Clamp(terrainAmpl * (float)planetNoise.Noise(vert_x / terrainSpread, vert_y / terrainSpread, vert_z / terrainSpread) + 1.0f, 0.85f, 1.0f); terrainVerts[i] *= terrainMap; } // Recalculate Mesh terrainMesh.vertices = terrainVerts; terrainMesh.RecalculateNormals(); terrainMesh.Optimize(); gameObject.GetComponent <MeshCollider> ().sharedMesh = null; gameObject.GetComponent <MeshCollider> ().sharedMesh = gameObject.GetComponent <MeshFilter>().mesh; }