请写一个方法,传入一个中心点,传入一个半径,用LineRenderer画一个圆出来
public class TestLineRenderer : MonoBehaviour
{
public Material m;
void Start()
{
DrawCirCle(Vector3.zero, 5);
}
/// <summary>
/// 根据圆心和半径画圆
/// </summary>
/// <param name="center">圆心</param>
/// <param name="rad">半径</param>
void DrawCirCle(Vector3 center, float rad)
{
//添加LineRenderer组件
LineRenderer line = gameObject.AddComponent<LineRenderer>();
//设置线的材质
line.material = m;
//设置起始点相连
line.loop = true;
//设置线宽
line.startWidth = 0.02f;
line.endWidth = 0.02f;
//设置线有多少个点
line.positionCount = 180;
//计算每个点相距的角度
float angleOnce = 360 / line.positionCount;
//设置线上点的数组
Vector3[] circlePoints = new Vector3[line.positionCount];
//起始向量
Vector3 vecStart = new Vector3(0, rad, 0);
for (int i = 0; i < line.positionCount; i++)
{
//四元数乘向量代表向量的旋转,值为Vector3类型
//向量加点代表移动该点
circlePoints[i] = Quaternion.Euler(0, 0, angleOnce * i) * vecStart + center;
}
//画线
line.SetPositions(circlePoints);
}
}