using System.Collections.Generic; using UnityEngine; [RequireComponent(typeof(LineRenderer))] public class TrailLine : MonoBehaviour { public float pointSpacing = 0.1f; // 两个轨迹点之间的最小距离 private LineRenderer lineRenderer; private List points = new List(); private Vector3 lastPoint; void Start() { lineRenderer = GetComponent(); lineRenderer.startWidth = 0.03f; lineRenderer.endWidth = 0.03f; lineRenderer.material = new Material(Shader.Find("Sprites/Default")); lineRenderer.startColor = Color.red; lineRenderer.endColor = Color.red; // 初始化第一个点 points.Add(transform.position); lastPoint = transform.position; } void Update() { float distance = Vector3.Distance(transform.position, lastPoint); // 如果移动距离超过设定的间隔,就记录一个点 if (distance >= pointSpacing) { points.Add(transform.position); lastPoint = transform.position; // 更新 LineRenderer 的点 lineRenderer.positionCount = points.Count; lineRenderer.SetPositions(points.ToArray()); } } }