2013年1月2日水曜日

Unity メッシュ考察

メッシュの動的修正について色々と試していたら、プリミティブのCubeを書き換えてしまった。
以下にそれを修正したコードを記載する。

立方体のメッシュの情報のうち、ポリゴンの張りかたを指定する配列 triangles を書き換えてしまった。
verticesとuvsも上書きしてしまったが、配列の長さが違っていたため、幸運にも上書きされずに済んだ。
trianglesの長さには制限がないということが分かる。
もともとの長さは36だが、実験したところ36より大きい数でも問題なく入った。

MeshFilter mesh_filter = _target.gameObject.GetComponent<MeshFilter>() as MeshFilter;

Mesh mesh = mesh_filter.sharedMesh;

mesh.name = "Cube";
mesh.triangles = new int[36] {
0,2,1,1,2,3,
4,6,5,5,6,7,
8,10,9,9,10,11,
15,13,14,15,14,12,
19,17,18,19,18,16,
23,21,22,23,22,20};

MonoBehaviour.print(mesh.vertexCount);
MonoBehaviour.print(mesh.vertices.Length);

mesh.RecalculateNormals();

0 件のコメント:

コメントを投稿