U_抛物线 3D
抛物线运动
抛物线公式:
https://baike.baidu.com/item/抛物线/3555564
理论抛物线计算演示:
public class 抛物线运动 : MonoBehaviour {
public float p;
void Update() {
transform.localPosition = new Vector3(transform.localPosition.x, Parabola(transform.localPosition.z), transform.localPosition.z);
}
// y = 0.5f * (1 / p) * x ^ 2
private float Parabola(float x) {
return 0.5f * (1 / p) * Mathf.Pow(x, 2);
}
}
抛物线实现预瞄:
public class BombLine : MonoBehaviour {
public LineRenderer lineRenderer;
private List<Vector3> points = new List<Vector3>();
// 次数
public int count = 50;
// 重力
public float g;
// 时间
public float tt = 0.1f;
// 速度
public float speed = 10;
private void Start() {
g = Physics.gravity.magnitude;
}
void Update() {
points.Clear();
points.Add(transform.position);
for (var i = 0; i < count; i++) {
var t = i * tt;
var v0 = transform.forward * speed;
var point = transform.position + v0 * t - 0.5f * Vector3.up * g * t * t;
points.Add(point);
}
lineRenderer.positionCount = points.Count;
lineRenderer.SetPositions(points.ToArray());
}
}


浙公网安备 33010602011771号