//创建一个mesh网格
Mesh mesh=new Mesh();
List<Vector3> list = new List<Vector3>();
list.Add(new Vector3(0, 0, 0) - Vector3.one * 0.5f);
list.Add(new Vector3(0, 1, 0) - Vector3.one * 0.5f);
list.Add(new Vector3(1, 0, 0) - Vector3.one * 0.5f);
list.Add(new Vector3(1, 1, 0) - Vector3.one * 0.5f);
list.Add(new Vector3(1, 0, 0) - Vector3.one * 0.5f);
list.Add(new Vector3(1, 1, 0) - Vector3.one * 0.5f);
list.Add(new Vector3(1, 0, 1) - Vector3.one * 0.5f);
list.Add(new Vector3(1, 1, 1) - Vector3.one * 0.5f);
list.Add(new Vector3(1, 0, 1) - Vector3.one * 0.5f);
list.Add(new Vector3(1, 1, 1) - Vector3.one * 0.5f);
list.Add(new Vector3(0, 0, 1) - Vector3.one * 0.5f);
list.Add(new Vector3(0, 1, 1) - Vector3.one * 0.5f);
list.Add(new Vector3(0, 0, 1) - Vector3.one * 0.5f);
list.Add(new Vector3(0, 1, 1) - Vector3.one * 0.5f);
list.Add(new Vector3(0, 0, 0) - Vector3.one * 0.5f);
list.Add(new Vector3(0, 1, 0) - Vector3.one * 0.5f);
list.Add(new Vector3(0, 1, 0) - Vector3.one * 0.5f);
list.Add(new Vector3(0, 1, 1) - Vector3.one * 0.5f);
list.Add(new Vector3(1, 1, 0) - Vector3.one * 0.5f);
list.Add(new Vector3(1, 1, 1) - Vector3.one * 0.5f);
list.Add(new Vector3(0, 0, 1) - Vector3.one * 0.5f);
list.Add(new Vector3(0, 0, 0) - Vector3.one * 0.5f);
list.Add(new Vector3(1, 0, 1) - Vector3.one * 0.5f);
list.Add(new Vector3(1, 0, 0) - Vector3.one * 0.5f);
mesh.vertices = list.ToArray();
//为网格添加uv坐标
List<Vector2> uv = new List<Vector2>();
for (int i = 0; i < 6; i++)
{
uv.Add(new Vector2(0.3f, 0.2f));
uv.Add(new Vector2(0.3f, 0.9f));
uv.Add(new Vector2(0.9f, 0.2f));
uv.Add(new Vector2(0.9f, 0.9f));
}
mesh.uv = uv.ToArray();
List<int> triangles = new List<int>();
for (int i = 0; i < 6; i++)
{
triangles.Add(0 + 4 * i);
triangles.Add(1 + 4 * i);
triangles.Add(2 + 4 * i);
triangles.Add(3 + 4 * i);
triangles.Add(2 + 4 * i);
triangles.Add(1 + 4 * i);
}
mesh.triangles = triangles.ToArray();
//自动计算法线
mesh.RecalculateNormals();
//把mesh网格赋值给网格过滤器
GetComponent<MeshFilter>().mesh = mesh;