1.给空对象添加MeshFilter和MeshRenderer
2.先添加顶点位置,然后绘制顺序要正确(顺时针绘制可以看见mesh网格,逆时针可以在背面看见网格)
3.为获取MeshFilter的mesh进行赋值(转化为数组)
代码如下
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CreateCube2 : MonoBehaviour
{
public int n = 20;
public float r = 5;
// Start is called before the first frame update
void Start()
{
Mesh mesh = new Mesh();
float ang = 2 * Mathf.PI / n;
List<Vector3> vlist = new List<Vector3>();
List<int> tlist = new List<int>();
vlist.Add(Vector3.zero);
for (int i = 0; i < n; i++)
{
float x = Mathf.Sin(i * ang) * r;
float y = Mathf.Cos(i * ang) * r;
vlist.Add(new Vector3(x, y, 0));
if(i==0)
{
tlist.Add(0);
tlist.Add(n);
tlist.Add(1);
}
else
{
tlist.Add(0);
tlist.Add(i);
tlist.Add(i + 1);
}
}
mesh.vertices = vlist.ToArray();
mesh.triangles =tlist.ToArray();
GetComponent<MeshFilter>().mesh = mesh;
}
}