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