如何统一获得线渲染器的所有点位置?

时间:2018-09-03 02:29:47

标签: c# unity3d

我想获得线渲染器行中的所有点位置,我需要此点位置,因为我想逐线绘制器绘制一条线,然后让球在此线上移动,所以我想使用线的指向位置,使球在绘制后在此线上移动

这是我的使用线条渲染器绘制线条的代码

public LineRenderer lineRend;
public EdgeCollider2D edgeColl;

List <Vector2> points;

public void Update_line(Vector2 mouse_pos)
{
    if (points == null)
    {
        points = new List<Vector2> ();

        set_point(mouse_pos);

        return;
    }

    if (Vector2.Distance(points[points.Count - 1], mouse_pos) > .1f)
    {
        set_point(mouse_pos);
    }

}

void set_point(Vector2 point)
{
    points.Add(point);

    lineRend.positionCount = points.Count;
    lineRend.SetPosition(points.Count - 1, point);

    if (points.Count > 1)
    {
        edgeColl.points = points.ToArray();
    }
}

}

下面的图片说明了我想在游戏中做什么 我希望它在图像底部移动的球

The illustration image

那么我必须通过代码执行此操作吗?

1 个答案:

答案 0 :(得分:0)

&array

lineRend.GetPositions(out Vector3[] allPoints); 返回out变量中线渲染器上的所有点。它是GetPositions

的数组

https://docs.unity3d.com/ScriptReference/LineRenderer.GetPositions.html