Unity WebGLの日本語入問題と対策
Unityはゲーム制作について、とても素晴らしいツールであり、更なるアップデートで進化を続けています。 しかし、そんな完璧に見えるツールでもまだ改善する所はあります。 今日の話は 入力フィールドのUnicode入力 です。 Unityで提供している入力フィールド(UnityEngine.UI.InputField) プラットフォームによって、デバイスが提供しているIME (入力装置) を完全に対応する (モバイルなど) プラットフォームもありますが、Webプラットフォームについては、そうではありません。 WebGLの場合、基本提供しているInputFieldで 日本語入力ができない ことが分かります。 (英文字なら問題なく入力可能) その理由は、「 ブラウザIMEのアクセス権限をUnity側が持ってない」 からです。それで、特殊なIME (日本語のromaji入力や組み合わせ入力など) の入力が、思い通りに動かないです。 これはゲームの中でプレイヤーの名前を入れたり、チャット機能などを実装する時、ややこしい問題になります。 WebGL用入力問題を解決する方法について、色々検索してみましたところ、 「WebGLNativeInputField」 というパッケージを見つけました。 https://github.com/unity3d-jp/WebGLNativeInputField こちらのデモで動作確認ができます。 https://unity3d-jp.github.io/WebGLNativeInputField このパッケージを使うと、WebGLでも日本語入力が問題なくできます。 (僕が調べた限り、これがUnityのWebGLで日本語入力できる唯一な対策ではないかと思われます。) ただ1つ問題があるとすれば、 (製作者の方には申し訳ないですが) 入力するとき、 別途のUIが出てくる ことです。 入力フィールドを触るとこのポップが出る オーバーレイタイプも選択可能(こっちの方が少し自然に見えます。) そもそも、WebGLNativeInputFieldで使われた方法は、 「Unity上の入力フィールドを使うことではなく、ブラウザ上に...