如何清除 LineRenderer 路径以重绘线条?
How to clear LineRenderer path to redraw the line?
我有一个 LineRenderer 路径来显示 GolfBall 的路径。
请看图片,栗色路径。
private void createTrail()
{
lineRenderer.SetColors(tracerColor, tracerColor);
lineRenderer.SetVertexCount(maxVertexCount);
for (int idx = 0; idx < (maxVertexCount - 2); idx++)
{//Add another vertex to show ball's roll
lineRenderer.SetPosition(idx, new Vector3((float)pts[idx * (int)positionSampling].z, (float)pts[idx * (int)positionSampling].y, (float)pts[idx * (int)positionSampling].x));
}
lineRenderer.SetPosition(maxVertexCount - 2, new Vector3((float)pts[goal - 1].z, (float)pts[goal - 1].y, (float)pts[goal - 1].x));
lineRenderer.SetPosition(maxVertexCount - 1, transform.position);
}
路径是使用pts[] array
中的点绘制的。
在重复显示时,我需要清除旧路径以重新绘制相同的路径。我怎样才能清除旧路径?
LineRenderer
没有清除功能,重绘不需要清除。此外,LineRenderer
不需要手动重新绘制。这是由 Unity 处理的。
如果您的目标是重置为它设置的旧顶点位置,只需将 LineRenderer
的顶点数设置为 0
。您可以使用 SetVertexCount(0)
函数或 positionCount
变量来执行此操作。请注意 SetVertexCount
现已弃用。
这应该删除您设置为 LineRenderer
:
的所有行
LineRenderer.positionCount = 0;
此扩展方法:
public static class ExtensionMethod
{
public static void Reset(this LineRenderer lr)
{
lr.positionCount = 0;
}
}
现在,您可以调用lineRenderer.Reset()
重置您之前设置的所有positions/path。
我有一个 LineRenderer 路径来显示 GolfBall 的路径。 请看图片,栗色路径。
private void createTrail()
{
lineRenderer.SetColors(tracerColor, tracerColor);
lineRenderer.SetVertexCount(maxVertexCount);
for (int idx = 0; idx < (maxVertexCount - 2); idx++)
{//Add another vertex to show ball's roll
lineRenderer.SetPosition(idx, new Vector3((float)pts[idx * (int)positionSampling].z, (float)pts[idx * (int)positionSampling].y, (float)pts[idx * (int)positionSampling].x));
}
lineRenderer.SetPosition(maxVertexCount - 2, new Vector3((float)pts[goal - 1].z, (float)pts[goal - 1].y, (float)pts[goal - 1].x));
lineRenderer.SetPosition(maxVertexCount - 1, transform.position);
}
路径是使用pts[] array
中的点绘制的。
在重复显示时,我需要清除旧路径以重新绘制相同的路径。我怎样才能清除旧路径?
LineRenderer
没有清除功能,重绘不需要清除。此外,LineRenderer
不需要手动重新绘制。这是由 Unity 处理的。
如果您的目标是重置为它设置的旧顶点位置,只需将 LineRenderer
的顶点数设置为 0
。您可以使用 SetVertexCount(0)
函数或 positionCount
变量来执行此操作。请注意 SetVertexCount
现已弃用。
这应该删除您设置为 LineRenderer
:
LineRenderer.positionCount = 0;
此扩展方法:
public static class ExtensionMethod
{
public static void Reset(this LineRenderer lr)
{
lr.positionCount = 0;
}
}
现在,您可以调用lineRenderer.Reset()
重置您之前设置的所有positions/path。