【Unity】モバイルキーボードの領域外タップ判定

概要

InputFieldもしくはTouchScreenKeyboard.Openでモバイルキーボードの領域外をタップすると、実行プラットフォームによっての挙動が違うため、Androidとiosの挙動について調査しました。

Androidの挙動

InputField

領域外をタップするとモバイルキーボードは閉じます。

タップ判定をUnityアプリ側から検出できないため、タップ箇所のUIに対してイベントは発生しません。

TouchScreenKeyboard.Open

領域外をタップするとモバイルキーボードは閉じます。

タップ判定をUnityアプリ側から検出できないため、タップ箇所のUIに対してイベントは発生しません。

iOSの挙動

InputField

領域外をタップすると、選択中のInputField上でなければモバイルキーボードを閉じます。

タップ判定はUnityアプリ側で検出でき、タップ箇所のUIに対してイベントが発生します。

モバイルキーボードはInputFieldのフォーカスが外れたことにより、OnDeselectからDeactivateInputFieldが呼ばれて閉じられています。

「Hide Mobile Input」にチェックを入れていた場合はInputField内のテキストを選択できますが、「貼り付け」「コピー」「切り取り」を行うことはできません。

TouchScreenKeyboard.Open

領域外をタップしてもモバイルキーボードは閉じません。

タップ判定はUnityアプリ側で検出でき、タップ箇所のUIに対してイベントが発生します。

また、モバイルキーボード表示中にTouchScreenKeyboard.Openを呼び出しても、前に呼び出したTouchScreenKeyboardのステータスは変わらないので注意。

   

コメントを残す


CAPTCHA