2015-02-02 2 views
0

Я просто создал скрипт для создания сетки через код. Итак, теперь моя проблема заключается в том, что я знаю только, как создать сетку с треугольниками, но должен быть способ использовать квадраты вместо треугольников. В последний раз, когда я работал над этим, у меня был сборник, который я манипулировал ... сборник был сделан в 3DSMAX и не имел треугольников, как я его смоделировал. Поэтому я был бы очень благодарен, если бы кто-то понял это.Создание сетки без треугольников

Вот мой код:

//MESH-SETUP 
MeshFilter vertMeshFilter = vertics.GetComponents<MeshFilter>()[0]; 
Mesh vertMesh = new Mesh(); 
vertMeshFilter.mesh = vertMesh; 

//VERTS 
Vector3[] vertices = new Vector3[4] 
{ 
    new Vector3(0f, 0.0f, 0.0f), 
    new Vector3(width, 0.0f, 0.0f), 
    new Vector3(0.0f, height, 0.0f), 
    new Vector3(width, height, 0.0f) 
}; 

//TRIANGLES 
int[] tri = new int[6]; 

tri[0] = 0; 
tri[1] = 2; 
tri[2] = 1; 

tri[3] = 2; 
tri[4] = 3; 
tri[5] = 1; 

//NORMALS 
Vector3[] normals = new Vector3[4]; 

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

//UV 
Vector2[] uvs = new Vector2[4]; 

uvs[0] = new Vector2(0, 0); 
uvs[1] = new Vector2(1, 0); 
uvs[2] = new Vector2(0, 1); 
uvs[3] = new Vector2(1, 1); 


//ASSIGN 
vertMesh.vertices = vertices; 
vertMesh.triangles = tri; 
vertMesh.normals = normals; 
vertMesh.uv = uvs; 
+2

как о spliiting квадрат в два треугольника? –

+0

Я хочу, чтобы это как квадрат, но я знаю, как создавать сетки во время выполнения с использованием треугольников. – 00noize00

ответ

2

Решение разделить исходный квадрат (те, что вы) на два треугольника и построить сетку с этих треугольников. Это может стоить некоторого внимания, чтобы сохранить порядок вершин так, чтобы два возникающих треугольника «лица» были такими же, как начальный квадрат.

enter image description here

Из вышеприведенного изображения, оригинальный квадрат v0, v1, v2, v3, то Поддавшись треугольники будут: v0,v1,v2 и v2,v3,v0

+0

Я получаю вашу мысль, но это не то, что я хочу. Мне нужно, чтобы он НЕ был построен из треугольников. Но Mesh.triangles в Unity принимают только кратное 3. – 00noize00

+0

@ 00noize00 вы не можете избежать треугольников, но, как я показал, вы достигаете того же: обратите внимание, что указанная вершина равна 6, то есть кратна 3;) –