unity2019.4.1f1を使用し、シューティングゲームを作成しています。
unity上のカーソルキーでの移動は問題ないのですが、iOS用にビルドして、iPhone11pro実機にて動かすと、自機の移動にラグが生じます。
指を画面から離さずに移動する場合は問題なく移動するのですが、画面から一度指を離して再度移動しようとすると、一瞬ラグがあります。指を画面に触れさせてからちょっと間を置いて移動した場合はラグがありません。すなわち、タップした瞬間にラグがあるように感じます。他の方のシューティングゲームではそのようなことはないので、私のコードがおかしいのではないかと思います。どこを改善すればいいか、ご教授いただけないでしょうか?
unity
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class PlayerMovement : MonoBehaviour 6{ 7 Vector3 pos; 8 9 void Start() 10 { 11 } 12 13 void Update() 14 { 15 16 17 if (Application.isEditor) // キーボードでの移動(テスト)用 18 { 19 float moveH = -Input.GetAxis ("Horizontal") * 10; 20 float moveV = -Input.GetAxis ("Vertical") * 10; 21 22 transform.Translate(moveH, 0, moveV); 23 Clamp(); 24 } 25 else // スマホでの移動用 26 { 27 if (Input.touchCount > 0) 28 { 29 Touch touch = Input.GetTouch(0); 30 float MoveH = -touch.deltaPosition.x * Time.deltaTime * 10; 31 float MoveV = -touch.deltaPosition.y * Time.deltaTime * 10; 32 transform.Translate(MoveH, 0, MoveV); 33 Clamp(); 34 } 35 } 36 } 37 38 void Clamp() 39 { 40 pos = transform.position; 41 42 pos.x = Mathf.Clamp(pos.x, -5f , 5f ); 43 44 pos.z = Mathf.Clamp(pos.z, -11f , 11f); 45 46 transform.position = pos; 47 } 48}
勘ですが、一瞬だけInput.touchCountが2になっている(Input.GetTouch(0)は止まっていてInput.GetTouch(1)が動いている)可能性があるかもしれません。確認してみてください。
助言ありがとうございます。
確認しましたが、Input.touchCountは常に1でした。何度か試しましたが、2は一度も現れませんでした。(意図的に二本指でタッチした場合は2でした)
なるほど、とすると何が原因かよくわからないので、Input.touchCountやtouch.deltaPositionやtransform.positionの値もどうなっているか観察してみるといいかと思います。
Input.GetMouseButton(0)でも
スマホでタップした時、マウスでクリックした時の判定をしてくれます。
こっちで試しても遅延は発生しますか?
助言ありがとうございます。
Input.GetMouseButton(0)は使ったことがないので、ちょっと調べてみたのですが、よくわかりませんでした。
しかしながら、マウスでっていうキーワードをいただきましたので、
float MoveH = -Input.GetAxis("Mouse X") * 0.1f;
float MoveV = -Input.GetAxis("Mouse Y") * 0.1f;
transform.Translate(MoveH, 0, MoveV);
で試してみたところ、感度はかなりいいように感じました。
しかしながら、画面をタッチした際に、その直前に画面から指を離した場所と、新たにタップした場所の距離分をまずキャラが移動し、その後に画面上で指を移動させた分だけ移動するといった挙動になってしまいます。
直前の指を離した場所がどこであれ、タップした後の移動分だけキャラが移動してほしい場合はどうしたらいいでしょうか?
あなたの回答
tips
プレビュー