マウスから値を受け取る(GetAxis)
h = Input.GetAxis("Mouse X");
v = Input.GetAxis("Mouse Y");
- きちんとスペースを入れること
マウスを回転させたときにカメラを回転させる(Quaternion)
- 最初に「public Vector2 rotationSpeed; //回転するスピード」を宣言している
x軸がvertical、y軸がhorizontalになる仕様らしいので注意(理由は調査中)- それぞれ、どの軸を「起点にするか」ということらしい
private void CameraMove() { horizontal = Input.GetAxis("Mouse X"); vertical = Input.GetAxis("Mouse Y"); h += horizontal * rotationSpeed.x; v += vertical * rotationSpeed.y; transform.rotation = Quaternion.Euler(v, h, 0f); }
- それぞれ、どの軸を「起点にするか」ということらしい
反転させる
// 回転する方向、反転させるか否かを決定する public bool reverseX; public bool reverseY;
上記をあらかじめ宣言しておくこと
- if文より下が追加部分
private void CameraMove() { horizontal = Input.GetAxis("Mouse X"); vertical = Input.GetAxis("Mouse Y"); h += horizontal * rotationSpeed.x; v += vertical * rotationSpeed.y; transform.rotation = Quaternion.Euler(v, h, 0f); if(reverseX == true) { transform.rotation = Quaternion.Euler(-v, h, 0f); } if(reverseY == true) { transform.rotation = Quaternion.Euler(v, -h, 0f); } }
マウスカーソルの表示と非表示を入れ替える
// マウスカーソルを非表示にする Cursor.visible = false; // マウスカーソルを表示する Cursor.visible = true;
マウスカーソルの表示と非表示を切り替えるだけであれば、bool型の変数を入れ替えるときと同じ要領で指示が可能
Cursor.visible = !Cursor.visible;
マウスカーソルが表示されている間は、カメラを動かさない
コントロールキーでマウスカーソルの表示と非表示を切り替える
private void CursorVisible()
{
// 左右どちらかのコントロールキーが押されたとき
if (Input.GetKeyDown(KeyCode.LeftControl) || Input.GetKeyDown(KeyCode.RightControl))
{
// カーソルの表示と非表示を切り替える
Cursor.visible = !Cursor.visible;
}
}
なお、Update()の中には以下の記述をする
- 「CursorVisible」は上記「コントロールキーでマウスカーソルの表示と非表示を切り替える」のメソッド
- 「CameraMove」はカメラを動かすためのメソッド
void Update() { CursorVisible(); // マウスカーソルが非表示のとき、カメラが動く if (!Cursor.visible) { Cursor.lockState = CursorLockMode.Locked; // カーソルを画面中央にロックする CameraMove(); } else { Cursor.lockState = CursorLockMode.None; // カーソルを自由に動かせる } } - !Cursor.visible:「!」は戻り値がtrueかfalseのみのときに使用できる(意味は「ひっくり返す」)
マウスカーソル設定の種類
Cursor.visible:カーソルの表示と非表示をtrueとfalseで決定する
Cursor.lockState = CursorLockMode.None;:カーソルを自由に動かす
Cursor.lockState = CursorLockMode.Locked;:カーソルを画面中央に固定
Cursor.lockState = CursorLockMode.Confined;:カーソルが画面外に出ないようにする