# How can I loop over all vertices and draw triangles ? I'm getting out of range exception

private int counter = 0;

``````public Vector3[] newVertices;

private void Start()
{
Mesh meshprefab = meshPrefab.GetComponent<MeshFilter>().sharedMesh;
newVertices = meshprefab.vertices;

for (int i = 0; i < newVertices.Length; i++)
{
try
{
DrawLine(newVertices[counter], newVertices[counter + 1], Color.red);
DrawLine(newVertices[counter + 1], newVertices[counter + 2], Color.red);
DrawLine(newVertices[counter + 2], newVertices[counter], Color.red);
}
catch(Exception err)
{
string tt = "";
}
counter = counter + 3;
}
}
``````

For example in this case in the array newVertices there are 350 items.
Now I want to create triangles so my formula is to move counter forward each time by 3.
Then in the first loop counter is 0. So I’m connecting the points 0 to 1 then 1 to 2 then 2 to 0 and that’s a triangle.

The problem is when ‘i’ in the loop is getting to 116.

i = 116
counter = 348
newVertices = 350

So now when it’s doing counter + 2 it’s 350 so it’s out of range.

The question is how and what should I do to solve it ? I want to connect and draw all vertices triangles but it’s drawing only 116.

Something I miss here and I guess I don’t understand yet.

I understand why it’s giving the exception but not how to solve it and draw all the triangles.

just use ‘i’, the variable in your loop

``````for(int i=0; i<newVertices.length-2;i++){
DrawLine(newVertices*, newVertices[i + 1], Color.red);*
``````

DrawLine(newVertices[i + 1], newVertices[i+ 2], Color.red);
DrawLine(newVertices[i+ 2], newVertices*, Color.red);*
}