如何将线条渲染器的所有点位置统一起来? [重复]

问题描述 投票:1回答:1

这个问题在这里已有答案:

我想得到线渲染器中的所有点位置,我需要这个点位置因为我想逐行渲染然后让球在这条线上移动所以我想使用线的点位置来移动这个球在绘制之后让球在这条线上移动

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

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

所以我必须通过代码做到这一点?

c# unity3d
1个回答
0
投票
lineRend.GetPositions(out Vector3[] allPoints);

GetPositions返回out变量中线渲染器上的所有点。它是一系列Vector3

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

© www.soinside.com 2019 - 2024. All rights reserved.