devlog [naru design]

プログラミングやテクニカルな内容の覚え書き。

iOSデバイス上でGUI.Buttonが正常に動作しない現象が発生した。

「シングルタップでは反応していたボタンが、画面をタップしたままタップすると反応しない。」

現象を確認するために、画面の中央にGUI.Buttonを配置した単純なアプリを用意した。

simple_app

スクリプトはGUI.Buttonを表示するシンプルなもの。

シングルタップ時の挙動

a. ボタンをタップするとボタンが反応する。

マルチタップ時の挙動

b. 画面左下をタップしたまま、別の指でボタンをタップするとボタンが反応しない。
c. 画面左下をタップしたまま、別の指で画面右上をタップするとボタンが反応する。
d. 4本の指で画面四隅をタップすると、ボタンが反応する。

マルチタップした時には、タップした座標が平均されて、GUIへ渡されているような挙動でした。

結論

iOS向けのアプリで、マルチタップが想定されるような操作が含まれているならGUI.Buttonは使わないほうが良さそうです。

公式ドキュメント:
http://docs-jp.unity3d.com/Documentation/Manual/Input.html#iPhoneInput

Input.touchesの配列から、タップされた座標やTouchPhaseを取得して、GUITextureのHitTestとなるのかな?

トータルコスト的には、AssetStoreでマルチタップに対応したAssetを購入するのが良いんだろうと思います。

Pocket

コメントを残す

Trackback URL: