So in the below code it's a simple script to generate the faces of a cube, I'm curious (and can only find C++ examples here) why the int[] triangles inside of CreateTriangles is able to be assigned to from inside of SetQuad even though I didn't pass it as a reference. I'm very new to C# so forgive me if this is a stupid question but from what I read on MSDN regarding refs there's something I clearly don't understand. I would have thought to get this effect you'd need to use "ref int[] ..."
private static int SetQuad (int[] triangles, int i, int v00, int v10, int v01, int v11){
triangles [i] = v00;
triangles [i + 1] = triangles [i + 4] = v01;
triangles [i + 2] = triangles [i + 3] = v10;
triangles [i + 5] = v11;
return i + 6;
}
private void CreateTriangles () {
int quads = (xSize * ySize + xSize * zSize + ySize * zSize) * 2;
int[] triangles = new int[quads * 6];
int ring = (xSize + zSize) * 2;
int t = 0, v = 0;
for (int y = 0; y < ySize; y++, v++) {
for (int q = 0; q < ring - 1; q++, v++) {
t = SetQuad (triangles, t, v, v + 1, v + ring, v + ring + 1);
}
t = SetQuad (triangles, t, v, v - ring + 1, v + ring, v + 1);
}
t = CreateTopFace (triangles, t, ring);
mesh.triangles = triangles;
}