Добрый день, я рисую линию и двигаю объект по нарисованной линии так:
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];
}
}
}
Я хочу по мере передвижения объекта удалять нарисованную линию (точки) позади этого объекта. Подскажите как это сделать. Спасибо.