123456789101112131415161718192021222324252627282930313233343536373839 |
- using Core.Utility;
- using UnityEngine;
- public class DrawParabola : MonoBehaviour
- {
- public Vector3 startPos = new Vector3(0, 0, 0);
- public Vector3 targetPos = new Vector3(10, 5, 10);
- public int segments = 100; // 抛物线段数
- private LineRenderer lineRenderer;
- private Parabola3DPath path;
- [ContextMenu("dasdasd")]
- public void Start22()
- {
- // 初始化 LineRenderer
- lineRenderer = gameObject.AddComponent<LineRenderer>();
- lineRenderer.positionCount = segments + 1;
- lineRenderer.useWorldSpace = true;
- lineRenderer.startWidth = 0.1f;
- lineRenderer.endWidth = 0.1f;
- // 初始化 Parabola3DPath
- path = new Parabola3DPath(startPos, targetPos);
- // 绘制抛物线
- DrawPath();
- }
- void DrawPath()
- {
- for (int i = 0; i <= segments; i++)
- {
- float t = i * (path.totalFlightTime / segments);
- Vector3 position = path.GetPositionAtTime(t);
- lineRenderer.SetPosition(i, position);
- }
- }
- }
|