2017-12-26 33 views
1

GolfBall의 경로를 표시하는 LineRenderer 경로가 있습니다. 이미지에서 적갈색 경로를 참조하십시오. LineRenderer 경로를 지워서 선을 다시 그리는 방법은 무엇입니까?

enter image description here

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의 점을 사용하여 그려진.

디스플레이를 반복 할 때 동일한 경로를 다시 그리려면 이전 경로를 지워야합니다. 이전 경로를 지우려면 어떻게해야합니까?

답변

2

LineRenderer에 대한 명확한 기능이 없으므로 다시 그리기 위해 지울 필요가 없습니다. 또한 LineRenderer은 수동으로 다시 그릴 필요가 없습니다. 이것은 Unity가 처리합니다.

목표로 설정 한 이전 버텍스 위치를 재설정하는 경우 LineRenderer의 버텍스 수를 0으로 설정하기 만하면됩니다. SetVertexCount(0) 함수 또는 positionCount 변수를 사용하여이 작업을 수행 할 수 있습니다. SetVertexCount은 더 이상 사용되지 않습니다.

이 당신이 LineRenderer로 설정 모든 라인을 제거해야합니다 :이를 위해

LineRenderer.positionCount = 0; 

확장 방법 : 모든 이전의 위치를 ​​재설정 lineRenderer.Reset()를 호출 할 수 있습니다

public static class ExtensionMethod 
{ 
    public static void Reset(this LineRenderer lr) 
    { 
     lr.positionCount = 0; 
    } 
} 

을 지금을/경로 당신에게 그것으로 설정합니다.