我在没有刚体的情况下以炮弹模式移动物体,没有addforce。我需要弄清楚炮弹在合适的时间到达目的地的速度有多快。
到目前为止我的代码:
moveTimer += Time.deltaTime * ballSpeed;
Vector3 currentPos = Vector3.Lerp(startPos, endPos, moveTimer);
currentPos.y += height * Mathf.Sin(Mathf.Clamp01(moveTimer) * Mathf.PI);
this.transform.position = currentPos;
我知道通过增加'ballSpeed',炮弹将遵循相同的曲线但速度更快。假设我想在10秒钟内到达endPos,我该如何计算所需的ballSpeed?
提前致谢!
答案 0 :(得分:2)
ballSpeed = 1f / 10f; // duration 10s
...
moveTimer += Time.deltaTime * ballSpeed;
Vector3 currentPos = Vector3.Lerp(startPos, endPos, moveTimer);
currentPos.y += height * Mathf.Sin(Mathf.Clamp01(moveTimer) * Mathf.PI);
this.transform.position = currentPos;