2017-10-14 8 views
0

SIN()で特定の時刻に距離を移動するのに必要な速度、砲弾を動作します。適切なタイミングで目的地に到達するには、砲弾がどれほど速く動くべきかを検討する必要があります。これまでは、どの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」で、砲弾が同じ曲線をたどるが、より高速になることを知っています。 endPosに正確に10秒で到達したいと思う場合、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

関連する問題