# Why does my array only execute the last of the array?

How come my code only creates 1 plane based on the last values of the array, instead of the amount of the length of the array?

``````using UnityEngine;
using System.Collections;

public class LevelSystem : MonoBehaviour {

public Vector2[] coordX;
public Vector2[] coordY;
private float l = 100f;

// Use this for initialization
void Start () {

for (int i = 0; i < coordX.Length; i++) {
MeshFilter mf = GetComponent<MeshFilter>();
Mesh level = new Mesh();
mf.mesh = level;

//verts
Vector3[] verts = new Vector3[]{
new Vector3 (coordX_.x, coordX*.y, 0f),*_
``````

new Vector3 (coordY_.x, coordY*.y, 0f),
new Vector3 (coordX.x, coordX.y, l),
new Vector3 (coordY.x, coordY.y, l)
};*_

* //Tris*

* int[] Tri = new int[6];*
* Tri[0] = 0;*
* Tri[1] = 2;*
* Tri[2] = 1;*

* Tri[3] = 1;*
* Tri[4] = 2;*
* Tri[5] = 3;*

* //Normals*
* Vector3[] normals = new Vector3[4];*

* normals[0] = Vector3.forward;*
* normals[1] = Vector3.forward;*
* normals[2] = Vector3.forward;*
* normals[3] = Vector3.forward;*

* //UVs*
* Vector2[] uv = new Vector2[4];*
* uv[0] = new Vector2(0,0);*
* uv[0] = new Vector2(1,0);*
* uv[0] = new Vector2(0,1);*
* uv[0] = new Vector2(1,1);*

* //assign*
* level.vertices = verts;*
* level.triangles = Tri;*
* level.normals = normals;*
* level.uv = uv; *

* //foreach (var item in normals) {*
* // Debug.Log(item);*
* //}*
* }*
* }*
}

This:

level.vertices = verts;

level.triangles = Tri;

level.normals = normals;

level.uv = uv;

You’re setting the level verticies, triangles etc to just the last set of verts you’ve created, so whilst you are iterating properly, on each iteration you are just overwriting the values on each pass rather than adding them.