🧊

【Unity】Cube型のMeshを動的に作成する方法

2021/04/26に公開

複雑なので流れを解説

まずイメージです。

1.Vector3で頂点の位置を決定

2.頂点番号を振り当てる

3.meshは三角形でしか動的作成できないので全ての面を時計周りに結びます

4.Meshの情報をMeshfilterに渡して完成です。

コード解説

Meshを動的に作るにはMeshFilterコンポーネントに頂点の座標とそれを時計周りで三角形に結ぶ頂点の番号を渡す必要があります。

頂点の座標

Vector3 vertices = { new Vector3 (0, 0, 0), new Vector3 (1, 0, 0), new Vector3 (1, 1, 0), new Vector3 (0, 1, 0), new Vector3 (0, 1, 1), new Vector3 (1, 1, 1), new Vector3 (1, 0, 1), new Vector3 (0, 0, 1), };

GetComponent<MeshFilter>().mesh.vertices = vertices;

時計周りで三角形に結ぶ頂点の番号

int triangles = { 0, 2, 1, //face front 0, 3, 2, 2, 3, 4, //face top 2, 4, 5, 1, 2, 5, //face right 1, 5, 6, 0, 7, 4, //face left 0, 4, 3, 5, 4, 7, //face back 5, 7, 6, 0, 6, 7, //face bottom 0, 1, 6 };

GetComponent<MeshFilter>().mesh.triangles = triangles;

コード

参考

http://ilkinulas.github.io/development/unity/2016/04/30/cube-mesh-in-unity3d.html

Discussion