目次
はじめに
UnityでWebGLビルドをした際にInputField
がPCでは機能したのですが、スマホで機能しなかったのでその時とった対処方法です。
前提として、UnItyのWebGLビルドはモバイルデバイスを公式サポートしていません。ですが、いちおう動きます。
環境:Unity2020.3.21
対処1
いろいろ調べて試したのですが、こちらのアセットを使用しました。
kou-yeung氏の「WebGLInput」
https://github.com/kou-yeung/WebGLInput/
プロジェクトに上記パッケージをインポートして「InputField」に「WebGLInput」コンポーネントを追加するだけです。
ただ今回、モバイルでフォーカスした際に文字サイズが異様に大きかったので後述の編集を加えました。
(TextMeshPro-InputField
を使用したからかも?)
対処2
「WebGLInput.cs」を開きます。
OnSelect()
メソッドの一部を編集します。
public void OnSelect()
{
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//var fontSize = Mathf.Max(14, input.fontSize); // limit font size : 14 !!
var fontSize = 20; // 上記コメントアウトして適切のフォントサイズを代入。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
補足
ちなみに今回、Unity WebGLのInputFieldを修正したのは「16:9」を計算するこちらのツールです。
猫の気まぐれチャット CatGPT final
猫が気まぐれに返信してくれます。メッセージを送ってみてください。 スマホは現在未対応 Unity ver2021.3. 25 WebGL
参考
WebGLのUnity InputField 日本語入力について | 白黒羊
プレイヤーの名前を入力するときなどに使える「InputField」ですが、WebGLで出力するとデフォルトでは
Unity フォーラム
https://answers.unity.com/questions/1762584/unity-text-input-field-not-working-in-webgl-build.html