なえ箱

メモを植えます

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

この記事をシェアする

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

モバイルキーボードを使う場合は、TouchScreenKeyboardを使う。

docs.unity3d.com

表示

表示したい場合は以下のように書けば表示される。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にする