[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]
在场景中创建空物体 并为其添加 MeshFilter, MeshRenderer
创建一个mesh
Mesh mesh = new Mesh();
MeshFilter filter = GetComponent<MeshFilter>();
filter.mesh = mesh;
mesh.name = "zzzz";
获取顶点坐标 如果是按顺时针获取的则法线方向是向上的,反之逆时针获取的则法线方向向下
这个平面是根据空物体的中心点 为Vector3(0, 0, 0) 顺时针方向四个点组成

mesh.vertices = GetVertices();//获取顶点坐标
Vector3[] GetVertices()
{
return new Vector3[] {
new Vector3(0, 0, 0),
new Vector3(1, 0, 0),
new Vector3(1, 1, 0),
new Vector3(0, 1, 0)
};
}
mesh渲染是把一个面分成很多三角形进行渲染的 以每三个点为一组构成三角形
mesh.triangles = GetTrangles();
int[] GetTrangles()
{
return new int[] {
0, 1, 2,
0, 2, 3
};
}
mesh.uv = GetUV();
//设置uv贴图如果不设置这个mesh将不会展现一张完整的图片 返回的v2数组与顶点数组相对应的
但不同的是uv坐标是以左下角为Vector2(0, 0)
所以:Vector3(0, 0, 0) -- > Vector2(1, 0)
Vector3(1, 0, 0) --> Vector2(0, 0)
Vector3(1, 1, 0) --> Vector2(0, 1)
Vector3(0, 1, 0) --> Vector2(1,1)

Vector2[] GetUV()
{
return new Vector2[] {
new Vector2(1, 0),
new Vector2(0, 0),
new Vector2(0, 1),
new Vector2(1,1)
};
}
原文:https://www.cnblogs.com/zjp959/p/13091757.html