使用 LineRenderer 画出轨迹,核心公式:
// 设置 LineRenderer 顶点数量
int pointCount = 30;
Vector2[] points = new Vector2[pointCount];
line.positionCount = pointCount;
// 第一个顶点位置
points[0] = transform.position;
line.SetPosition(0, points[0]);
// 计算剩余顶点位置
for (int i = 1; i < pointCount; i++)
{
// 计算的时间间隔
float t = i * Time.fixedDeltaTime * 5;
// 水平方向只有一个恒定的速度,做匀速运动
float dx = velocity.x * t;
// 垂直方向的力受重力影响,做匀加速运动
float dy = velocity.y * t + .5f * Physics2D.gravity.y * Mathf.Pow(t, 2);
// 第 i 个顶点的位置
points[i] = points[0] + new Vector2(dx, dy);
// 或者写成
// points[i] = points[0] + velocity * t + 0.5f * Physics2D.gravity * Mathf.Pow(t, 2);
// 由于 Physics2D.gravity.x 值是 0 ,结果是一样
line.SetPosition(i, points[i]);
}
ine.enabled = true;
来源:CSDN
作者:maiYo_
链接:https://blog.csdn.net/kenight/article/details/103847501