スマホのゲームやアプリでテキストを入力する時に出すキーボードの表示/非表示のやり方です。
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.URL | URL特化キーボード |
TouchScreenKeyboardType.NumberPad | 数字のみ |
TouchScreenKeyboardType.PhonePad | 番号入力特化キーボード |
TouchScreenKeyboardType.NamePhonePad | 英数字キーボード |
TouchScreenKeyboardType.EmailAddress | メールキーボード |
TouchScreenKeyboardType.Social | スペースの右に@のあるキーボード |
TouchScreenKeyboardType.Search | スペースの右に.があるキーボード |
キーボードなんでこんな種類あるんだってリファレンス見ながら思ってました。よく使いそうなのはDefaultとNumberPad辺りかな…。
非表示
非表示は、activeをfalseにすることで非表示に出来ます。
keyboard.active = false;
キーボードに入力した文字の取得
キーボードを使う時、入力した文字を取得したい時がほとんどだと思います。
キーボードに入力した文字の取得方法は、
keyboard.text;
で取得します。
UIのTextとかに入力したテキストを表示させたい時などはこんな感じに使えば良い。
Text m_UISample;
m_UISample.text = keyboard.text;
文字数の制限
キーボードのインプットフィールドに入力できる最大文字数を設定できます。
keyboard.characterLimit = 10; // 最大文字数を10にする