PhysifApps

趣味と開発メモ保管庫

モバイルキーボードの表示/非表示、文字の取得、文字数の制限【Unity】

スマホのゲームやアプリでテキストを入力する時に出すキーボードの表示/非表示のやり方です。

Unityでモバイルキーボードを使う場合は、TouchScreenKeyboardを使います。

UnityEngine.TouchScreenKeyboard - Unity スクリプトリファレンス

表示

表示したい場合は以下のように書けば表示されます。iOSでもAndroidでも同じ書き方でキーボードが表示されます。

TouchScreenKeyboard.Open( "", TouchScreenKeyboardType.Default );

実際に使う時はこんな感じ。keyboardからテキストとか色々取得したりできる。

TouchScreenKeyboard keyboard;

keyboard = TouchScreenKeyboard.Open( "", TouchScreenKeyboardType.Default );

TouchScreenKeyboardType は書き換えると様々なキーボードを出すことが出来ます。出てくるキーボードは以下の通り。

TouchScreenKeyboardType.Defaultデフォルト
TouchScreenKeyboardType.ASCIICapable ASCIIのキーボード
TouchScreenKeyboardType.NumbersAndPunctuation数字とピリオド、カンマ等がある
TouchScreenKeyboardType.URLURL特化キーボード
TouchScreenKeyboardType.NumberPad数字のみ
TouchScreenKeyboardType.PhonePad番号入力特化キーボード
TouchScreenKeyboardType.NamePhonePad英数字キーボード
TouchScreenKeyboardType.EmailAddressメールキーボード
TouchScreenKeyboardType.Socialスペースの右に@のあるキーボード
TouchScreenKeyboardType.Searchスペースの右に.があるキーボード

キーボードなんでこんな種類あるんだってリファレンス見ながら思ってました。よく使いそうなのはDefaultNumberPad辺りかな…。

非表示

非表示は、activeをfalseにすることで非表示に出来ます。

keyboard.active = false;

キーボードに入力した文字の取得

キーボードを使う時、入力した文字を取得したい時がほとんどだと思います。

キーボードに入力した文字の取得方法は、

keyboard.text;

で取得します。

UIのTextとかに入力したテキストを表示させたい時などはこんな感じに使えば良い。

Text m_UISample;

m_UISample.text = keyboard.text;

文字数の制限

キーボードのインプットフィールドに入力できる最大文字数を設定できます。

keyboard.characterLimit = 10; // 最大文字数を10にする