2017-10-14 528 views
0

我正在以沒有剛體的炮彈模式移動對象,沒有增加力量。我需要確定炮彈應該在適當的時間到達目的地的速度有多快。在Unity3d中,如何計算在特定時間移動距離所需的速度,帶有Sin的炮彈()

我迄今爲止代碼:

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?

在此先感謝!

回答

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; 
+0

非常感謝!我看到你在編輯前增加了一些關於距離的東西,但是這個效果很好。謝謝! – Quarty

相關問題