Mesh mesh;
float maxr = 2;//大圆半径
float minr = 1f;//小圆半径
int n = 20;
float rad;
VertexHelper vh;
void Start()
{
mesh=new Mesh();
rad=(2*Mathf.PI)/n;//每个点的角度
vh =new VertexHelper();
for(int i=0; i<n; i++)
{
//大圆各个顶点
float x=Mathf.Sin(i*rad)*maxr;
float z=Mathf.Cos(i*rad)*maxr;
vh.AddVert(new Vector3(x,0,z),Color.green,Vector2.zero);
}
for(int i=0; i<n; i++)
{
//小圆各个顶点
float x=Mathf.Sin(i*rad)*minr;
float z=Mathf.Cos(i*rad)*minr;
vh.AddVert(new Vector3(x,0,z),Color.green,Vector2.zero);
if(i==n-1)
{
vh.AddTriangle(n,i,0);
vh.AddTriangle(i+n,i,n);
}
else
{
vh.AddTriangle(i,i+n+1,i+n);
vh.AddTriangle(i,i+1,i+n+1);
}
}
vh.FillMesh(mesh);
GetComponent<MeshFilter>().mesh=mesh;
Material mat=new Material(Shader.Find("Standard"));
GetComponent<MeshRenderer>().sharedMaterial=mat;
}
07-31