public float redius;//半径
public float angle;//偏移角度
private float parts = 0;
private const float pi = 3.14f;
private List<Vector2> circleList = new List<Vector2>();
void Start()
{
parts = 360 * (1 / angle);
DrawCircle(redius, angle, parts);
}
void OnDrawGizmos()
{
for (int i = 0; i < circleList.Count - 1; i++)
{
Gizmos.DrawLine(new Vector3(circleList[i].x, 0, circleList[i].y), new Vector3(circleList[i + 1].x, 0, circleList[i + 1].y));
Gizmos.color = Color.red;
}
}
void DrawCircle(float r, float angle, float parts)
{
Debug.Log("这个圆可以分为" + parts + "部分");
Vector3 center = transform.position;
float x, z;
for (int i = 0; i <= parts; i++)
{
//r += 0.15f;
x = center.x + Mathf.Sin(angle * i * (pi / 180f)) * r;
z = center.z + Mathf.Cos(angle * i * (pi / 180f)) * r;
circleList.Add(new Vector2(x, z));
}
}