Как удалять по мере движения объекта линию нарисованную через LineRenderer?

Добрый день, я рисую линию и двигаю объект по нарисованной линии так:
DrawManager.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DrawManager : MonoBehaviour
{
    private Camera _cam;
    [SerializeField] private Line1 _linePrefab;

    public const float RESOLUTION = .3f;

    private Line1 _currentLine;
    void Start()
    {
        _cam = Camera.main;
    }

    void Update()
    {
        Vector2 mousePos = _cam.ScreenToWorldPoint(Input.mousePosition);

        if (Input.GetMouseButtonDown(0) && PlayerController.canDraw) _currentLine = Instantiate(_linePrefab, mousePos, Quaternion.identity);

        if (Input.GetMouseButton(0) && PlayerController.canDraw) _currentLine.SetPosition(mousePos);
    }
}

Line1.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Line1 : MonoBehaviour
{
    [SerializeField] private LineRenderer _renderer;

    private readonly List<Vector2> _points = new List<Vector2>();

    public void SetPosition(Vector2 pos)
    {
        if (!CanAppend(pos)) return;

        _points.Add(pos);

        _renderer.positionCount++;
        _renderer.SetPosition(_renderer.positionCount - 1, pos);
    }

    private bool CanAppend(Vector2 pos)
    {
        if (_renderer.positionCount == 0) return true;

        return Vector2.Distance(_renderer.GetPosition(_renderer.positionCount - 1), pos) > DrawManager.RESOLUTION;
    }

    private void OnDestroy()
    {
        _points.Clear();
        _renderer = new LineRenderer();
    }
}

PlayerController.cs Объект начинает двигаться
if (isMoving && linePoints.Count > 1 && targetPointIndex < linePoints.Count)
        {
            Quaternion targetRotation = Quaternion.LookRotation(Vector3.forward, targetPoint - transform.position);
            transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, rotationSpeed * Time.deltaTime);

            Vector3 direction = (targetPoint - transform.position).normalized;
            transform.position += direction * speed * Time.deltaTime;

            if (Vector3.Distance(transform.position, targetPoint) < 0.1f)
            {
                targetPointIndex++;
                if (targetPointIndex < linePoints.Count)
                {
                    targetPoint = linePoints[targetPointIndex];
                }
            }
        }

Я хочу по мере передвижения объекта удалять нарисованную линию (точки) позади этого объекта. Подскажите как это сделать. Спасибо.
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
Удалять старые точки из массива.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы