現在UnityでAndroid用アプリ開発をしています。端末にマウスを繋げて、マウスの移動量によってキャラクターを動かしたいのですが、Android用のマウスの移動量の取得の仕方が分かりません。
x = x + Input.GetAxis("Mouse X") * 0.005f;
y = y + Input.GetAxis("Mouse Y") * 0.005f;
GameObject.Find("キャラクター").transform.position = new Vector3(x, y, 0.5f);
現在はこのようなコードを使用していて、Unity上(PC上)ではスクリーンの大きさに縛られずマウスの移動量が取得出来ている状態です。しかし、Android上で動かすとスクリーンの端までマウスカーソルが行くと移動量が計測できなくなってしまっています。
具体的に言うと
Input.GetAxis("Mouse X")の関数は、毎フレームごとのマウスのx方向の移動量を取得できる関数です。この関数は、もしマウスカーソルがスクリーンの端に行って、見た目上マウスカーソルが移動していないように見えてもマウスの移動量は取得できるので使っています。ただ、スクリーンの端に行っても移動量が取得できるのはPC上だけで、Android端末上の場合マウスカーソルのスクリーンの端にマウスカーソルが行くとマウスの移動量が取得できなくなってしまいます。
実際に起こっていることとしては「PC上では、マウスカーソルの移動量を取得し、制限なくキャラクターをx方向y方向に動かすことができますが、Android上ではマウスカーソルがスクリーンの端に行ってしまうとそれ以上の方向にキャラクターが移動できなくなってしまい移動に制限が掛かってしまう」です。
また、Cursor.visible = false;を使うとゲーム内(PC上)でマウスカーソルが消えるように設定できるのですが、この命令もAndroid端末上ですと表示されたままになってしまいます。このことからそもそもPC上でのマウスの制御とAndroid上でのマウスの制御の仕方が違うのではないかと考えました。
Android上でのマウス制御の記述方式を知りたいです。
あなたの回答
tips
プレビュー