Attempting to generate a large plane accross the x,y, axis, All Debug.Logs are triggered with the only error being:
“Failed setting triangles. The number
of supplied triangle indices must be a
multiple of 3.
UnityEngine.Mesh:set_triangles(Int32)
ChunkScript:Start() (at
Assets/Scripts/ChunkScript.js:42)”
However, The plane is not visible, and does not appear to have been generated. What is the problem? Here is my code:
#pragma strict
@script RequireComponent(MeshFilter, MeshCollider, MeshRenderer)
function Start () {
var mesh : Mesh = new Mesh ();
GetComponent(MeshFilter).mesh = mesh;
// Do Vertices
var vertices : Vector3[] = new Vector3[39999];
for (var i : int = 0; i<10000; i=i+100) {
for (var j : int = 0; j<100; j++) {
vertices[i+j*4] = new Vector3(j, (i/100), 0);
vertices[i+j*4+1] = new Vector3(j+1, (i/100), 0);
vertices[i+j*4+2] = new Vector3(j, ((i/100)+1), 0);
vertices[i+j*4+3] = new Vector3(j+1, ((i/100)+1), 0);
}
}
mesh.vertices = vertices;
Debug.Log("Vertices Done");
// Do Triangles
var tri : int[] = new int[59999];
for (var ii : int = 0; ii<10000; ii=ii+100) {
for (var jj : int = 0; jj<100; jj++) {
tri[ii+jj*6] = ii+jj*6;
tri[ii+jj*6+1] = ii+jj*6+2;
tri[ii+jj*6+2] = ii+jj*6+3;
tri[ii+jj*6+3] = ii+jj*6;
tri[ii+jj*6+4] = ii+jj*6+3;
tri[ii+jj*6+5] = ii+jj*6+1;
}
}
mesh.triangles = tri;
Debug.Log("Triangles Done");
// Do Normals
var normals : Vector3[] = new Vector3[39999];
for (var k : int = 0; k<39999; k++) {
normals[k] = -Vector3.forward;
}
mesh.normals = normals;
Debug.Log("Normals Done");
// Do UVs
var uv : Vector2[] = new Vector2[39999];
for (var iii : int = 0; iii<10000; iii=iii+100) {
for (var jjj : int = 0; jjj<100; jjj++) {
uv[iii+jjj*4] = new Vector2(jjj*0.0625, 0.03125*(iii/100));
uv[iii+jjj*4+1] = new Vector2(jjj+1*0.0625, 0.03125*(iii/100));
uv[iii+jjj*4+2] = new Vector2(jjj*0.0625, 0.03125*(iii/100)+1);
uv[iii+jjj*4+3] = new Vector2(jjj+1*0.0625, 0.03125*(iii/100)+1);
}
}
mesh.uv = uv;
Debug.Log("UVs Done");
}