Generated Mesh is partially rendered, but shown correctly in scene view

I generate a mesh by code. In the Scene and Game View, it is shown correctly, but when i look at the generated mesh in the inspector preview, only half the triangles are generated. The other ones are only visible on the other side, when i flip the preview around.

To explain, here are some screenshots:

alt text Scene View

alt text Game View

alt text Inspector Preview

alt text Inspector Preview flipped over

I also added a collision to my mesh. If i place a cube with gravity enabled over the mesh, it only collides with the triangles shown in picture #3… This is also my main problem.

I think i have something with the triangles or the normals wrong, so here is my code.

	MeshFilter mf = GetComponent<MeshFilter>();
	Mesh mesh = new Mesh();
	mf.mesh = mesh;
	
	//Vertices
	Vector3[] verticies = new Vector3[]
	{
		new Vector3(0,0,0), 
		new Vector3(2,0,0), 
		new Vector3(0,0,3), 
		new Vector3(2,0,3),
		
		new Vector3(0,0,4), 
		new Vector3(2,0,4), 
		new Vector3(0,0,6), 
		new Vector3(2,0,6),
		
		new Vector3(0,0,7), 
		new Vector3(6,0,7), 
		new Vector3(0,0,9), 
		new Vector3(6,0,9),
		
		new Vector3(4,0,0), 
		new Vector3(6,0,0), 
		new Vector3(4,0,2), 
		new Vector3(6,0,2),
		
		new Vector3(5,0,2), 
		new Vector3(6,0,2), 
		new Vector3(5,0,4), 
		new Vector3(6,0,4),
		
		new Vector3(4,0,4), 
		new Vector3(6,0,4), 
		new Vector3(4,0,6), 
		new Vector3(6,0,6)
	};
	
	//Triangles
	int[] tri = new int[]
	{
		0,1,2,
		1,2,3,
		
		4,5,6,
		5,6,7,
		
		8,9,10,
		9,10,11,
		
		12,13,14,
		13,14,15,
		
		16,17,18,
		17,18,19,
		
		20,21,22,
		21,22,23
	};
	
	//Normals, to see the Object
	Vector3[] normals = new Vector3[]
	{
		-Vector3.forward,
		-Vector3.forward,
		-Vector3.forward,
		-Vector3.forward,
		
		-Vector3.forward,
		-Vector3.forward,
		-Vector3.forward,
		-Vector3.forward,
		
		-Vector3.forward,
		-Vector3.forward,
		-Vector3.forward,
		-Vector3.forward,
		
		-Vector3.forward,
		-Vector3.forward,
		-Vector3.forward,
		-Vector3.forward,
		
		-Vector3.forward,
		-Vector3.forward,
		-Vector3.forward,
		-Vector3.forward,
		
		-Vector3.forward,
		-Vector3.forward,
		-Vector3.forward,
		-Vector3.forward
	};
	
	//UVs what is displayed
	Vector2[] uv = new Vector2[]
	{
		new Vector2(0,0),
		new Vector2(1,0),
		new Vector2(0,1),
		new Vector2(1,1),
		
		new Vector2(0,0),
		new Vector2(1,0),
		new Vector2(0,1),
		new Vector2(1,1),
		
		new Vector2(0,0),
		new Vector2(1,0),
		new Vector2(0,1),
		new Vector2(1,1),
		
		new Vector2(0,0),
		new Vector2(1,0),
		new Vector2(0,1),
		new Vector2(1,1),
		
		new Vector2(0,0),
		new Vector2(1,0),
		new Vector2(0,1),
		new Vector2(1,1),
		
		new Vector2(0,0),
		new Vector2(1,0),
		new Vector2(0,1),
		new Vector2(1,1)
	};
	
	//Assign Arrays to Object
	mesh.vertices	= verticies;
	mesh.triangles 	= tri;
	mesh.normals	= normals;
	mesh.uv 		= uv;
	
	MeshCollider mc = gameObject.AddComponent(typeof(MeshCollider)) as MeshCollider;
    mc.sharedMesh = mesh; // Give it your mesh 

I hope some of you can help me, i’d appretiate it!

Reverse order (or simply flip two indices) in very triangle that is reversed. It’s called CW (clock-wise) and CCW (counter-clock-wise) culling.

Reversing normals does not reverse triangles.