- Home /
How to create a grid with four 4 triangle squares?
I'm trying to make a grid of squares that's divided twice, instead of once. I got a row that creates perfectly, but when z > 0, the top and right triangles don't show up correctly.
void genSquare(int x, int z)
{
verts.Add (new Vector3(x, 0, z));
verts.Add (new Vector3(x + 1, 1, 0));
verts.Add(new Vector3(x, 0, z - 1));
verts.Add (new Vector3(x + 1, 0, z - 1));
verts.Add (new Vector3(x + 0.5f, 0f, z - 0.5f));
//Left
tris.Add ((squares * 5)+ 2);
tris.Add ((squares * 5) + 0);
tris.Add ((squares * 5) + 4);
//Bottom
tris.Add ((squares * 5) + 3);
tris.Add ((squares * 5) + 2);
tris.Add ((squares * 5) + 4);
//Right
tris.Add ((squares * 5) + 1);
tris.Add ((squares * 5) + 3);
tris.Add ((squares * 5) + 4);
//Top
tris.Add ((squares * 5) + 0);
tris.Add ((squares * 5) + 1);
tris.Add ((squares * 5) + 4);
squares++;
}
Answer by Ijatsu · Dec 10, 2014 at 02:21 PM
I think the problem is your second vertex: (x + 1, 1, 0) instead of (x+1, 0, z), it's the superior right corner and if z>1 then it becomes the inferior right corner, which screws everything. Also I think the y value is a mistake too.
I'm barely sure you'll reply that you corrected it already, don't worry, everyone knows you have to ask someone before you find the answer yourself. :D
Ah! Thank you! the y coordinate shouldn't have been there. But I totally missed that 0. Thanks!
Your answer
Follow this Question
Related Questions
How do you use the Plane struct 1 Answer
Generate mesh from raycast positions, independent of rotations 0 Answers
Connecting several planes 0 Answers
plane changes mesh on collision 0 Answers