这个问题在这里已有答案:
我想得到线渲染器中的所有点位置,我需要这个点位置因为我想逐行渲染然后让球在这条线上移动所以我想使用线的点位置来移动这个球在绘制之后让球在这条线上移动
这是我使用线条渲染器绘制线条的代码
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();
}
}
}
下面的图片说明了我想在游戏中做的事情,我希望它在绘制线上移动的图像底部的球
所以我必须通过代码做到这一点?
lineRend.GetPositions(out Vector3[] allPoints);
GetPositions
返回out变量中线渲染器上的所有点。它是一系列Vector3
https://docs.unity3d.com/ScriptReference/LineRenderer.GetPositions.html