Guest User

Untitled

a guest
Mar 21st, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.26 KB | None | 0 0
  1.     private void CreateTriangles()
  2.     {
  3.         for (int z = 0; z < vertices.Length - Width * 5; z++)
  4.         {
  5.             triangles.Add(z);
  6.             triangles.Add(z + Width + 1);
  7.             triangles.Add(z + 1);
  8.             triangles.Add(z + 1);
  9.             triangles.Add(z + Width + 1);
  10.             triangles.Add(z + Width + 2);
  11.         }
  12.     }
  13.  
  14.     private void AddVertex(int x, int y, int z)
  15.     {
  16.         Vector3 v = new Vector3(x, y, z) * 2f / Width - Vector3.one;
  17.         ve++;
  18.  
  19.         normals[ve] = v.normalized;
  20.         vertices[ve] = v.normalized * Radius;
  21.     }
  22.  
  23.     private IEnumerator GenerateTerrain()
  24.     {
  25.         vertices = new Vector3[(Width + 2) * (Width + 2) * 6];
  26.         normals = new Vector3[(Width + 2) * (Width + 2) * 6];
  27.         triangles = new List<int>(vertices.Length * 6);
  28.  
  29.         Mesh mesh = mf.mesh = new Mesh();
  30.         //-Z
  31.         for (int x = 0; x <= Width; x++)
  32.         {
  33.             for (int y = 0; y <= Width; y++)
  34.             {
  35.                 AddVertex(y, x, 0);
  36.             }
  37.         }
  38.         //+X
  39.         for (int y = 0; y <= Width; y++)
  40.         {
  41.             for (int z = 0; z <= Width; z++)
  42.             {
  43.                 AddVertex(Width, y, z);
  44.             }
  45.         }
  46.         //+Z
  47.         for (int x = Width; x >= 0; x--)
  48.         {
  49.             for (int y = 0; y <= Width; y++)
  50.             {
  51.                 AddVertex(y, x, Width);
  52.             }
  53.         }
  54.         //-X
  55.         for (int z = Width; z >= 0; z--)
  56.         {
  57.             for (int y = 0; y <= Width; y++)
  58.             {
  59.                 AddVertex(0, z, y);
  60.             }
  61.         }
  62.         //+Y
  63.         for (int z = 0; z <= Width; z++)
  64.         {
  65.             for (int x = 0; x <= Width; x++)
  66.             {
  67.                 AddVertex(x, Width, z);
  68.             }
  69.         }
  70.         //-Y
  71.         for (int z = 0; z <= Width; z++)
  72.         {
  73.             for (int x = 0; x <= Width; x++)
  74.             {
  75.                 AddVertex(z, 0, x);
  76.             }
  77.         }
  78.         yield return null;
  79.         CreateTriangles();
  80.  
  81.         mesh.vertices = vertices;
  82.         mesh.triangles = triangles.ToArray();
  83.         mesh.normals = normals;
  84.         mesh.RecalculateBounds();
  85.         mesh.RecalculateNormals();
  86.         mesh.Optimize();
  87.     }
Add Comment
Please, Sign In to add comment