マウスで回転する一人称カメラを作りたい。
私が見Input.GetAxisスクリプトAPIのページで、私は私のポストの下部に含まれているサンプルコードを、発見しました。試してみると、基本的な機能は同じだと思いましたが、特にマウスを円で動かすと、カメラがxz平面に平行に保たれないことに気付きました。しばらくすると、カメラが奇妙な角度になり、プレーヤーは完全に乱暴になります!
どういうわけかカメラの動きを制限するこのコードのクイックフィックスはありますか、またはカメラを回転させるより良い方法はありますか?
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
public float horizontalSpeed = 2.0F;
public float verticalSpeed = 2.0F;
void Update() {
float h = horizontalSpeed * Input.GetAxis("Mouse X");
float v = verticalSpeed * Input.GetAxis("Mouse Y");
transform.Rotate(v, h, 0);
}
}
ジンバルロックのような音が発生しています。回転にオイラー角を使用しているときに発生します。ソリューションを提供するには、いくつかのテストを行う必要があります。基本的に、四元数を使用する必要があります。ジンバルロックの影響を受けません。
—
ファジーロジック、
四元数を使用して回転を行うにはどうすればよいですか?transform.rotation = Quaternion.Slerp(-Input.GetAxis( "Mouse X")、Input.GetAxis( "Mouse X")、Time.deltaTime * freeLookTurningSpeed);を試しました。、しかしそれは私にエラーを与えました。
—
stackexchangeの生まれ変わり
わかりました、私はテストをしました。幸い、それはジンバルロックではありません。解決策を回答します。
—
ファジーロジック