[Unity] MouseLook の「Minimum X」「Maximum X」が機能しない問題の解決法
12 06, 2013
Unityで,Character Controllerか何かをインポートすると,「Mouse Look」なるC#のスクリプトが一緒にインポートされます.このスクリプトには「Minimum X」「Maximum X」というパラメータがあり,見るからにX軸方向の回転角度を制限するパラメータなのですが,値を設定しても機能しません.
これはおそらくスクリプトのバグです.公式フォーラムに解決策が載っていました.MouseLook.csを開き,31行目あたりからの
を
と書き換えれば,無事に制限がかかります.
参考: http://answers.unity3d.com/questions/47341/restrict-mouselook-x-movement-script-does-not-work.html
これはおそらくスクリプトのバグです.公式フォーラムに解決策が載っていました.MouseLook.csを開き,31行目あたりからの
float rotationY = 0F;
void Update ()
{
if (axes == RotationAxes.MouseXAndY)
{
float rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityX;
rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0);
}
を
float rotationX = 0F;
float rotationY = 0F;
void Update ()
{
if (axes == RotationAxes.MouseXAndY)
{
rotationX += Input.GetAxis("Mouse X") * sensitivityX;
rotationX = Mathf.Clamp (rotationX, minimumX, maximumX);
rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0);
}
と書き換えれば,無事に制限がかかります.
参考: http://answers.unity3d.com/questions/47341/restrict-mouselook-x-movement-script-does-not-work.html
スポンサーサイト