
画线功能Linerenderer
1、LineRenderer是什么
LineRenderer是Unity提供的一个用于画线的组件
使用它我们可以在场景中绘制线段
一般可以用于
1、绘制攻击范围 2、武器红外线 3、辅助功能 4、其它画线功能
2、LineRender参数相关



3、LineRender代码相关
private Material m;
void Start()
{
GameObject line = new GameObject();
line.name = "line";
LineRenderer lineRenderer = line.AddComponent<LineRenderer>();
lineRenderer.loop = true;
lineRenderer.startWidth = 0.02f;
lineRenderer.endWidth = 0.02f;
lineRenderer.startColor = Color.white;
lineRenderer.endColor = Color.red;
m = Resources.Load<Material>("M");
lineRenderer.material = m;
lineRenderer.positionCount = 4;
lineRenderer.SetPositions(new Vector3[] {
new Vector3(0, 0, 0),
new Vector3(0, 0, 5),new Vector3(5, 0, 5)});
lineRenderer.SetPosition(3, new Vector3(5, 0, 0));
lineRenderer.useWorldSpace = true;
lineRenderer.generateLightingData = true;
}
思考1 请写一个方法,传入一个中心点,传入一个半径,用LineRender画个圆出来
using UnityEngine;
public class CicleLine : MonoBehaviour
{
void Start()
{
DrawCicleLine(Vector3.zero, 5, 360);
}
public void DrawCicleLine(Vector3 centerPos, float r, int pointNum)
{
GameObject obj = new GameObject();
obj.name = "R";
LineRenderer cicleLine = obj.AddComponent<LineRenderer>();
cicleLine.loop = true;
cicleLine.positionCount = pointNum;
float angle = 360f / pointNum;
for (int i = 0; i < pointNum; i++)
{
cicleLine.SetPosition(i, centerPos + Quaternion.AngleAxis(angle * i, Vector3.up) * Vector3.forward * r);
}
}
}
思考2 在Game窗口长按鼠标用LineRender画出鼠标移动的轨迹
using UnityEngine;
public class MouseLine : MonoBehaviour
{
private LineRenderer DrawLine;
private Vector3 nowMousePos;
void Update()
{
if(Input.GetMouseButtonDown(0))
{
GameOb