こんにちは!SHINです。

前回に続き、Unityを使って久々にゲーム制作をするにあたって思ったことをたらたら書きます。

タップ操作に対応させる

今作っているゲームはスマホ向けのものですので、
当然のことながら、タップ操作に対応させたかったのですが、これがまた大変でした。

まず、テスト用にクリックでの操作に対応させ、PCでの挙動には問題ないことがわかり、
その後タップ操作に対応させようとしたのですが、
スクリプトを熟知していなかったこともあり、タップでは一切反応しない期間がかなり長く続きました。

なぜタップ操作関連の挙動は修正しづらい

理由はシンプルです。簡単にテストできないからです。

残念なことに、SHINは低スペックなパソコンを使っているので、ビルドには十数分かかります。
最終的にタップ操作を完全に実装するまで、七時間ぐらいかかっていると思われますが、その時間の大半はビルドでした。

ですが、この問題は後々「とある方法」で劇的に改善されます。それはまた次回。

タップ操作クリック操作の確認まとめ|早見表

また同じ過ちを犯さないよう、きっちりまとめておきますよ。

新押し Input.GetMouseButtonDown(0) Input.touchCount > 0

Input.GetTouch(0).phase == TouchPhase.Began

押し継続 Input.GetMouseButton(0) Input.touchCount > 0

Input.GetTouch(0).phase == TouchPhase.Moved

座標(x) Input.mousePosition.x Input.touchCount > 0

Input.GetTouch(0).position.x

今のところこのぐらいしか使ってないんですが、この違いを理解するのにも数十分要しました。
まとめると一瞬なんですけどね・・・。一人でも多くの人にこの記事が届くことを願います。


タップ操作関連についてはだいたい語れましたかね。
まだ、「WebGL」「Unity Remote」とかのネタが残っているので、少しずつ紹介していくと思います。