タイトルはほとんどすべてを語っています..私が船を持っているとしましょう。その worldVelocity は次の値を持つ Vector3 です: X: 0 Y: 0 Z: 1 (+Z が前方、+Y が上、+X が右と仮定)この Vector3 は、平行移動と回転を格納する船の worldTranslations Matrix に追加されます。
worldTranslations.Translation += worldVelocity
私の船は前進し、目標速度である速度 1 で (正しく) 加速を停止しますが、船が右に 180 度回転しているとどうなるでしょうか。自動的に船の目標速度がこれを検出し、再び前進しようとします。
問題は、船の速度と localTransforms からローカル速度を取得する方法がわからず、どこにも答えが見つからないことです..
そのため、現時点では、船が回転しない限り、船が目標速度に達したかどうかを確認するために世界速度を使用しています。目標速度は 1 なので、船は現在の速度 (0,0,0) と目標速度 (0,0,1) を比較し、目標 (0,0,1) に到達して加速を停止するまで適切に加速します。一定の速度を維持しますが、右に 90 度回転すると、現在の速度は (-1,0,0) になります。これは、船が左に漂流しているためです。 (1,0,1) を加速して (0,0,1) に戻しますが、相対速度を取得する方法がわかりません。それで、それはすべて良いと思いますが、まだ左に漂っています..
ありがとう..またみんな:)