画圆圈的原理:圆上数个点之间连线大致画出一个圆,点越多,圆越精细。
首先,在含有以下代码脚本的物体,添加LineRenderer组件
代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
Vector2 v; //圆心,Vector2是2D,当然也可以换Vector3
float R; //半径
int positionCount; //完成一个圆的总点数,
float angle; //转角,三个点形成的两段线之间的夹角
Quaternion q; //Quaternion四元数
LineRenderer line; //LineRenderer组件
void Start()
{
v = new Vector2(0, 0);
R = 6;
positionCount = 180;
angle = 360f / (positionCount - 1);
line = GetComponent<LineRenderer>();
line.positionCount = positionCount;
}
void Update()
{
DrawCircle();
}
void DrawCircle()
{
for (int i = 0; i < positionCount; i++)
{
if (i != 0)
{
q = Quaternion.Euler(q.eulerAngles.x, q.eulerAngles.y, q.eulerAngles.z + angle);
}
Vector3 forwardPosition = (Vector3)v + q * Vector3.down * R;
line.SetPosition(i, forwardPosition);
}
}
效果:
为什么是粉色的?
是因为LineRenderer中Material材质为空,添加material可以改变颜色。
更复杂的LineRenderer可以看这位作者的文章