Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void CreateTriangles()
- {
- for (int z = 0; z < vertices.Length - Width * 5; z++)
- {
- triangles.Add(z);
- triangles.Add(z + Width + 1);
- triangles.Add(z + 1);
- triangles.Add(z + 1);
- triangles.Add(z + Width + 1);
- triangles.Add(z + Width + 2);
- }
- }
- private void AddVertex(int x, int y, int z)
- {
- Vector3 v = new Vector3(x, y, z) * 2f / Width - Vector3.one;
- ve++;
- normals[ve] = v.normalized;
- vertices[ve] = v.normalized * Radius;
- }
- private IEnumerator GenerateTerrain()
- {
- vertices = new Vector3[(Width + 2) * (Width + 2) * 6];
- normals = new Vector3[(Width + 2) * (Width + 2) * 6];
- triangles = new List<int>(vertices.Length * 6);
- Mesh mesh = mf.mesh = new Mesh();
- //-Z
- for (int x = 0; x <= Width; x++)
- {
- for (int y = 0; y <= Width; y++)
- {
- AddVertex(y, x, 0);
- }
- }
- //+X
- for (int y = 0; y <= Width; y++)
- {
- for (int z = 0; z <= Width; z++)
- {
- AddVertex(Width, y, z);
- }
- }
- //+Z
- for (int x = Width; x >= 0; x--)
- {
- for (int y = 0; y <= Width; y++)
- {
- AddVertex(y, x, Width);
- }
- }
- //-X
- for (int z = Width; z >= 0; z--)
- {
- for (int y = 0; y <= Width; y++)
- {
- AddVertex(0, z, y);
- }
- }
- //+Y
- for (int z = 0; z <= Width; z++)
- {
- for (int x = 0; x <= Width; x++)
- {
- AddVertex(x, Width, z);
- }
- }
- //-Y
- for (int z = 0; z <= Width; z++)
- {
- for (int x = 0; x <= Width; x++)
- {
- AddVertex(z, 0, x);
- }
- }
- yield return null;
- CreateTriangles();
- mesh.vertices = vertices;
- mesh.triangles = triangles.ToArray();
- mesh.normals = normals;
- mesh.RecalculateBounds();
- mesh.RecalculateNormals();
- mesh.Optimize();
- }
Add Comment
Please, Sign In to add comment