void CreateMesh() { NoiseGen noise = new NoiseGen(octaves, lacunarity, gain, perlinScale); vertices = new Vector3[(xSize + 1) * (zSize + 1)]; for (int i = 0, z = 0; z <= zSize; z++) { for (int x = 0; x <= xSize; x++) { // Altering the y value to make uneven terrain float y = 4.3f * noise.GetFractalNoise(transform.position.x + x, transform.position.z + z); vertices[i] = new Vector3(x, y, z); //vertices[i] = new Vector3(x, SamplePerlin(transform.position.x + x, transform.position.z + i), z); if (y > maxTerrainHeight) { maxTerrainHeight = y; } if (y < minTerrainHeight) { minTerrainHeight = y; } i++; } } triangles = new int[xSize * zSize * 6]; int vert = 0; int tris = 0; // Creates the triangles/quad for the mesh for (int z = 0; z < zSize; z++) { for (int x = 0; x < xSize; x++) { // First triangle triangles[tris + 0] = vert + 0; triangles[tris + 1] = vert + xSize + 1; triangles[tris + 2] = vert + 1; // Second triangle triangles[tris + 3] = vert + 1; triangles[tris + 4] = vert + xSize + 1; triangles[tris + 5] = vert + xSize + 2; // 2 triangles make a quad vert++; tris += 6; } vert++; } SetUvs(); SetVertexColours(); }