Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void buildMesh()
- {
- int numTiles = sizeX * sizeZ;
- int numTris = numTiles * 2;
- int vertSizeX = sizeX + 1;
- int vertSizeZ = sizeZ + 1;
- int numVerts = vertSizeX * vertSizeZ;
- Vector3[] vertices = new Vector3[numVerts]; // For each corner
- Vector3[] normals = new Vector3[numVerts]; // For lighting iirc
- Vector2[] uv = new Vector2[numVerts]; // For textures
- int[] tris = new int[numTris * 3]; // The vertices that make a triangle
- int x, z;
- for(z = 0; z < sizeZ; z++)
- {
- for(x = 0; x < sizeX; x++)
- {
- vertices[z * vertSizeX + x] = new Vector3(x * tileSize, 0f, z * tileSize);
- normals[z * vertSizeX + x] = Vector3.up;
- uv[z * vertSizeX + x] = new Vector2((float) x / sizeX, (float)z /sizeZ);
- }
- }
- for(z = 0; z < sizeZ; z++)
- {
- for(x = 0; x < sizeX; x++)
- {
- int squareIndex = z * sizeX + x;
- int triOffset = squareIndex * 6;
- tris[triOffset + 0] = z * vertSizeX + x + 0;
- tris[triOffset + 1] = z * vertSizeX + x + vertSizeX + 0;
- tris[triOffset + 2] = z * vertSizeX + x + vertSizeX + 1;
- tris[triOffset + 3] = z * vertSizeX + x + 0;
- tris[triOffset + 4] = z * vertSizeX + x + vertSizeX + 1 ;
- tris[triOffset + 5] = z * vertSizeX + x + 1;
- }
- }
- Mesh mesh = new Mesh();
- MeshRenderer meshRender = GetComponent<MeshRenderer>();
- MeshFilter meshFilter = GetComponent<MeshFilter>();
- MeshCollider meshCollider = GetComponent<MeshCollider>();
- mesh.vertices = vertices; // Set the mesh's vertices to what we made
- mesh.triangles = tris; // Set the triangles to " ".
- mesh.normals = normals; // set the normals to " ".
- mesh.uv = uv;
- meshFilter.mesh = mesh; // Set the mesh filter's mesh to the mesh we made
- meshCollider.sharedMesh = mesh;
- makeTexture ();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement