WebGLで出力したゲームで日本語入力ができなくなったよ。
どうすれば良いの?
そんなお悩みにお答えします!
ランキングのユーザー名入力のため、InputFieldを使用している方は多いと思います。
でも、Unityエディター上では問題ないのに、WebGLで出力するとなぜか日本語入力ができないことがあります。
調べたところ、WebGLInputパッケージを使用すると解決できることがわかりました。
そこで本記事では、WebGLで出力した際にInputFieldで日本語入力ができない時の解決方法をご紹介します。
環境
Unity バージョン:2020.3.46f1
Windows10
InputFieldとは
InputFieldとは、簡単に言えば文字を入力するUIのことです。
以前に記事を書いたので、こちらを参考にしてください。
InputFieldで日本語入力ができない時の解決方法
結論として、WebGLInputパッケージをダウンロードし、WebGLInput.csスクリプトをInputFieldオブジェクトにアタッチすると日本語入力ができるようになります。
以下、順番にご説明します。
まず、こちらのページに進んでください。
「How to use」から「WebGLSupport.unitypackage」をクリックしてダウンロードします。
Unityエディターを開き、「Assets」→「Import Package」→「Custom Package」からインポートしましょう。
右下の「Import」をクリック。
WebGLInput.csというスクリプトをInputFieldにアタッチしてみましょう。
これで、WebGLで出力したゲームで日本語入力ができるようになると思います。
WebGLビルド時にエラーが出たときの対応
ビルド時に以下のようなエラーがでました。
Assets\WebGLSupport\WebGLInput\UIToolKit\WebGLUIToolkitTextField.cs(3,19): error CS0234: The type or namespace name ‘Windows’ does not exist in the namespace ‘UnityEngine’ (are you missing an assembly reference?)
ChatGPTに解決方法を聞いてみたところ、以下の回答。
WebGLUIToolkitTextField.cs ファイルで using UnityEngine.Windows; を削除することでエラーが解消される可能性が高いです。UnityEngine.Windows は Windows 固有の API ですが、現在のコードでは直接的には使用されていません。
指示通り「WebGLUIToolkitTextField.cs」の「using UnityEngine.Windows;」コードを削除したところ、ビルドが通りました。
ChatGPTに感謝。
【Unity】InputFieldで日本語入力ができない時の解決方法【WebGL】 まとめ
本記事では、WebGLで出力した際にInputFieldで日本語入力ができない時の解決方法についてご紹介しました。
WebGLInputパッケージをダウンロードし、WebGLInput.csスクリプトをInputFieldオブジェクトにアタッチすると日本語入力ができます。
お困りの方はぜひ試してみてください。
本記事が、皆さんの参考になれば幸いです。