LoginSignup
0
0

Unityゲーム開発備忘録 #2 GetAxis マウス

Posted at

今回の内容

sample.cs
Input.GetAxis("Mouse X")

の動きについて

Unity におけるカメラ移動ってまあ基本こいつを使っていると思います。使ってない人に関してはちょっとわからないのでスルーしてください。

こいつの働きは、ジョイスティック、キーボード、マウスの入力に応じて-1か1の数値を出します。
マウスだとちょっと変わりますが、概ねそんな感じです

image.png

関数のグラフのイメージで正負の判定を出力します。
なのでマウスでカメラを動かす
といった動きに多用されるわけですね。

しかしこいつ

マウスの動きは関数グラフと同じですが

これをカメラの動きに当てはめるとXYが逆になります。

罠ですね。

いや罠じゃあないんですが、初心者の方にはマジでわけわからんと思います。

だってXYを順当にカメラの動きに対応させると

マウスを左右に動かすとカメラが上下に動いて
マウスを上下に動かすとカメラは左右に動くんですから

これ、原因はRotationの軸なんですよね。

どういうこと?

カメラが上下左右に動くのは、Rotation、つまり軸を中心にした円運動なんですよね。

で、RotationにおけるX,Y
X軸、Y軸になります。

Rotation X=60は X軸中心の+60度回転

ってことになります。

X軸は真横に伸びる線です(Z軸もそうだけどそこは気にしない)

真横に伸びる線を中心に+60度回転するとどうなるか?

当然上を向きますよね。

同様にYのRotationをしたら横に回り始めますね。

要するに

マウスのXYは座標を取得する
RotationのXYは軸を指定するので

そこをしっかりと理解しておかないと、「あれ、マウスを横にしてんのにカメラが縦に動くじゃねーか!!!」
ということになってしまうので、注意しましょう

って話でした。

Rotationって書きすぎて平沢進のRotation(Lotus-2)を聞きたくなったので聞いてきます。

じゃあね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0