1.声明变数和圆的半径,在unity里确定值的大小
2.声明顶点(Vector3)和三角形(int)的集合,首先在顶点里添加圆心
List<Vector3> vertices = new List<Vector3>();
vertices.Add(Vector3.zero);
List<int> triangle = new List<int>();
3.添加顶点和三角形
for (int i = 0; i < num / 2 + 1; i++)
{
float xr = Mathf.Sin(angle * i) * r;
float y = Mathf.Cos(angle * i) * r;
for (int j = 0; j < num; j++)
{
float x = Mathf.Sin(j * angle) * xr;
float z = Mathf.Cos(j * angle) * xr;
vertices.Add(new Vector3(x, y, z));
if (i < num / 2 && j < num)
{
triangle.Add(i * num + j);
triangle.Add(i *num + j + 1);
triangle.Add((i + 1) * num + j);
triangle.Add((i + 1) * num + j);
triangle.Add(i * num + j + 1);
triangle.Add((i + 1) * num + j + 1);
}
}
}
4.设置顶点和三角形,设置网格过滤器和网格碰撞器的mesh
GetComponent<MeshFilter>().mesh = mesh;
GetComponent<MeshCollider>().sharedMesh = mesh;