Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2014
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.88 KB | None | 0 0
  1. public void buildMesh()
  2.     {
  3.         int numTiles = sizeX * sizeZ;
  4.         int numTris =  numTiles * 2;
  5.         int vertSizeX = sizeX + 1;
  6.         int vertSizeZ = sizeZ + 1;
  7.         int numVerts = vertSizeX * vertSizeZ;
  8.  
  9.         Vector3[] vertices = new Vector3[numVerts]; // For each corner
  10.         Vector3[] normals = new Vector3[numVerts]; //  For lighting iirc
  11.         Vector2[] uv = new Vector2[numVerts]; // For textures
  12.         int[] tris = new int[numTris * 3]; // The vertices that make a  triangle
  13.  
  14.  
  15.         int x, z;
  16.  
  17.         for(z = 0; z < sizeZ; z++)
  18.         {
  19.             for(x = 0; x < sizeX; x++)
  20.             {
  21.                 vertices[z * vertSizeX  + x] = new Vector3(x * tileSize, 0f, z * tileSize);
  22.                 normals[z * vertSizeX + x] = Vector3.up;
  23.                 uv[z * vertSizeX + x] = new Vector2((float) x / sizeX, (float)z /sizeZ);
  24.             }
  25.  
  26.         }
  27.  
  28.         for(z = 0; z < sizeZ; z++)
  29.         {
  30.             for(x = 0; x < sizeX; x++)
  31.             {
  32.                 int squareIndex = z * sizeX + x;
  33.                 int triOffset = squareIndex * 6;
  34.  
  35.                 tris[triOffset + 0] = z * vertSizeX + x +                        0;
  36.                 tris[triOffset + 1] = z * vertSizeX + x + vertSizeX +      0;
  37.                 tris[triOffset + 2] = z * vertSizeX + x + vertSizeX +      1;
  38.  
  39.                 tris[triOffset + 3] = z * vertSizeX + x +                        0;
  40.                 tris[triOffset + 4] = z * vertSizeX + x + vertSizeX +      1 ;
  41.                 tris[triOffset + 5] = z * vertSizeX + x +                         1;
  42.        
  43.  
  44.             }
  45.         }
  46.  
  47.         Mesh mesh = new Mesh();
  48.         MeshRenderer  meshRender = GetComponent<MeshRenderer>();
  49.         MeshFilter meshFilter = GetComponent<MeshFilter>();
  50.         MeshCollider meshCollider = GetComponent<MeshCollider>();
  51.  
  52.  
  53.  
  54.         mesh.vertices = vertices; // Set the mesh's vertices to what we made
  55.         mesh.triangles = tris; // Set the triangles to "       ".
  56.         mesh.normals = normals; // set the normals  to "    ".
  57.         mesh.uv =  uv;
  58.  
  59.         meshFilter.mesh = mesh; // Set the mesh filter's mesh to the mesh we made
  60.  
  61.         meshCollider.sharedMesh = mesh;
  62.  
  63.         makeTexture ();
  64.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement