unity3D通过MeshFilter实现动态生成模型(一)三角形
unity提供了MeshFilter接口,可以动态修改或添加模型的顶点、uv等数据。
先来实现一个最简单的创建一个三角形:
1.new 一个GameObject对象,加上MeshFilter和MeshRenderer组件,两个都是必须的,MeshFilter管理顶点数据,MeshRenderer负责渲染。
GameObject obj = new GameObject("plane"); MeshFilter mFilter = obj.AddComponent<MeshFilter>(); MeshRenderer mRen = obj.AddComponent<MeshRenderer>();
2.定义三角形三个顶点坐标,以及三角形索引数组。顶点的顺序是可以随意的,MeshFilter根据三角形索引数组的顺序来绘制。
Vector3[] vertices = new Vector3[3]; // vertices[0].Set(0.5f, -0.5f, 0.5f); vertices[1].Set(-0.5f, -0.5f, 0.5f); vertices[2].Set(0.5f, 0.5f, 0.5f); // int[] triangles = new int[] { 0,1,2};
3.最后把顶点和三角形索引数组赋给MeshFilter的相应属性,即可创建一个三角形,下面是效果图。
mFilter.mesh.vertices = vertices;
mFilter.mesh.triangles = triangles;

真是太简单了,下一章创建有任意数量顶点的凸多边形。
浙公网安备 33010602011771号