0

現在、Oculus Rift で何かを飛ばそうとしています。

唯一のコントロールは Oculus Camera です。

プレーヤーは常に前に進んでいますが、回転させたり、上下させたりできるようにしたいと考えています。上に行くには、プレーヤーは 10° から 45° 上を見なければなりません。これはすべての方向で同じです。

私は現在 Unity を使用しており、カメラの回転に関するクォータニオンを取得しています。

それを行うスクリプトはありますか?どうすれば自分でそれを行うことができますか、または少なくとも四元数を回転に変換するにはどうすればよいですか?

4

1 に答える 1

0

朗報です!あなたの目的のために、四元数を直接扱う必要はありません。ただし、少しのベクトル計算が役立つ場合があります。

transform.forwardどのスクリプトでも、スクリプトがアタッチされているオブジェクトの前方方向を示します。カメラの場合は、プレイヤーが見ている方向になります。

カメラの前方方向とプレーヤーが移動する前方方向だけを使用して、プレーヤーの回転に必要な情報を計算できます。

Vector3.Angle(transform.forward, cameraObject.transform.forward)は、2 つの前方方向の間の角度を示します。

Vector3.Cross(transform.forward, cameraObject.transform.forward)回転軸になります。

角度が目的の範囲内にあるかどうかを確認し、使用することができます

transform.Rotate(Vector3.Cross(transform.forward, cameraObject.transform.forward), rotationSpeed * Time.deltaTime)回転を実行します。回転が必要な方向とは逆の場合は、2 つのパラメーターの順序を に切り替える必要がある場合がありますVector3.Cross

于 2015-01-07T17:14:45.760 に答える