mesh:网格(继承object)
一个基本的模型由点和面构成
//读取模型的mesh信息
void ReadMesh ( ) {
//获取脚本下的模型
Mesh mesh= GetComponent
//输出模型的定点坐标
foreach(Vector3 vec in mesh.vertices) {
Debug.Log(vec);
}
//输出三角面的构成(三个点组成一个三角面)
foreach (int ints in mesh.triangles) {
Debug.Log(ints);
}
//输出每个面的uv
foreach (Vector2 vec in mesh.uv) {
Debug.Log(vec);
}
}
//新建一个模型mesh
void BuildMesh( ) {
//需要游戏物体有MeshFilter组件,并且添加添加MeshRenderer组件才能渲染(能被看见)
#if若是为空的游戏物体
gameObject.AddComponent
gameObject.AddComponent
#endif
Mesh mesh = new Mesh();
//设置顶点坐标(至少有两个以上的顶点才能创建面)
mesh.vertices=new Vector3[ ]{
new Vector3 (-1, -1, 0),
new Vector3 (1, 1, 0),
new Vector3 (1, -1, 0),
new Vector3 (-1, 1, 0)
};
//设置三角面的组数:#这个组数代表每三个顶点组成一个平面,数组的值为顶点数组下标值(mesh.vertices[ idex ])并且数组的个数为3的整数倍,
//0、1、2组成一个面,0、1、3组成一个面
mesh.triangles = new int [ ] { 0, 1, 2, 0, 1, 3 };
//添加uv
mesh.uv = new Vector2[mesh.vertices.Length];
for (int i = 0; i < mesh.uv.Length; i++)
{
mesh.uv[i] = new Vector2(mesh.vertices[i].x, mesh.vertices[i].z);
}
//把mesh赋值给MeshFilter
gameObject.GetComponent
}
补充:
每3个点确定一个平面,用右手判断,四个手指的方向为点的先后顺序,则拇指为法线的方向,左手则为反方向
修改:
每3个点确定一个平面,用左手判断,四个手指的方向为点的先后顺序,则拇指为法线的方向