【開発ノート】Unityでネイティブの文字入力を使いたい😄

NEWS

2019.09.18

ブログ 開発ノート

こんにちは
エム・ソフトのエンジニアのkomiyaです。

エム・ソフトでは、ARやXRのアプリを日々開発しています。
開発に役立ちそうな情報やメモなどを不定期で公開していきたいと思います。


 

Unityで文字入力機能を実装する

Unityで文字を入力する機能を実装するときはInputFieldを使うことが多いと思いますが、
ネイティブの文字入力と比べると色々と不便な点があります。

例えば、

  ・複数行の文字列を入力した場合にプレビューしにくい
  ・絵文字が入力できない or 文字化けする😭

今回はUnityでネイティブの文字入力を扱うことができる「UnityMobileInput」をご紹介します!

準備

https://github.com/mopsicus/UnityMobileInput

まずは、上記のリンク先からファイルをダウンロードしてUnityプロジェクトにインポートします。

空のGameObjectを生成してPluginsスクリプトをアタッチします。

uGUIでInputFieldのオブジェクトを生成しMobileInputFieldスクリプトをアタッチします。

実行

左側がUnityMobileInputで、右側が通常のInputFieldです。
UnityMobileInputでは絵文字が使えていますが、通常のInputFieldでは文字化けが起きています。
UnityMobileInputはネイティブの文字入力を使っているので、入力欄上でのスクロールやキャレットの移動をすることもできます。

注意点

UnityMobileInputで注意することは、Unity側で描画している画面レイヤーの上からネイティブのTextFieldを描画している点です。
試しに、先ほどの画面の上にuGUIで作ったダイアログを表示してみます。
すると・・・

入力欄がダイアログより前に描画されています

ネイティブの文字入力が扱えることは非常に魅力的ですが、UIとして組み込むためには文字入力をするときのみ入力欄をアクティブにするなどの工夫が必要になりそうです。

 


 

エム・ソフトは、新しい技術や可能性を日々追求しています。
ご興味をお持ちの方は、ぜひお気軽にお問合わせください!