Bootstrap

Unity 画线(UILineRenderer)

实现

以鼠标点击点作为起点创建UILineRenderer 并记录起点。

GameObject go = new GameObject();
go.transform.parent = transPaint;
go.transform.localPosition = Vector3.zero;
line = go.AddComponent<UILineRenderer>();
line.LineWidth = widthLine;
line.color = colorLine;
line.AddVector2Point(mousePosition);

 实时记录鼠标位置,与UILineRenderer 的上一个绘制点差值大于最小偏差时记录绘制点。

Vector2 lastPosition = line.points[line.points.Count - 1].Position;
if (Mathf.Abs(Vector2.Distance(mousePosition, lastPosition)) > offset)
{
    line.AddVector2Point(mousePosition);
}

更新UILineRenderer。

line.LineUpdateGeometry();

*如有清除需求,可在创建时将UILineRenderer 添加进List,在需要时进行销毁清除。

//添加进List
listRenderer.Add(line);
//销毁
foreach (var renderer in listRenderer)
{
    Destroy(renderer.gameObject);
}
listRenderer.Clear();

效果

;