Bootstrap

Unity 使用LineRenderer画圆圈

画圆圈的原理:圆上数个点之间连线大致画出一个圆,点越多,圆越精细。

首先,在含有以下代码脚本的物体,添加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画圆圈
为什么是粉色的?
LineRenderer
是因为LineRenderer中Material材质为空,添加material可以改变颜色。
更复杂的LineRenderer可以看这位作者的文章

;