本日はiOS枠です。
今年の夏からmacを使い始め開発を始めていますが、今回はキーボードを使用していきます。
〇環境
・Unity2021.3.21f1
〇iOSのシステムキーボード
WindowsなどのPCにはアクセシビリティ機能を使用しない場合デフォルトで物理キーボードがあるためキー入力は簡単です。
iOSの場合スマートフォンのため物理キーボードは存在しません。
必要な時にシステムキーボードが出現し入力を行えます。
今回は自身のUnity製アプリケーション内でシステムキーボードを使用して文字を入力する実装を行います。
〇Unity製iOSアプリでシステムキーボードを使用する
システムキーボードは次のような関数で呼び出すことができます。
private TouchScreenKeyboard keyboard; public void OpenKeyboard() { this.keyboard = TouchScreenKeyboard.Open("IPAddress", TouchScreenKeyboardType.Default); this.keyboard.text = "";//デフォルトのテキスト }
TouchScreenKeyboard.Open()はOSがサポートしているネイティブのシステムキーボードをアクティブにするメソッドです。
第二引数はキーボードの種類を提供し、ここでは数字のみ、アルファベットのみなどOSがサポートしているキーボードの種類を選択可能です。
このタイプは次のようなタイプがあります。
Type | |
---|---|
Default | デフォルトのキーボード |
ASCIICapable | 標準のASCIIキーを備えたキーボード |
NumbersAndPunctuation | 数字と句読点キー |
URL | URLの入力に適したキーボード |
NumberPad | 電話番号の入力に適したレイアウトのキーボード |
入力した値は次のように取得できます。
string output = keyboard.text;
この値はユーザーはキーの入力を完了しエンターボタンを押した際に取得する必要があります。
これは次のように実装できます。
void Update() { if (keyboard != null && keyboard.status == TouchScreenKeyboard.Status.Done) { string output = keyboard.text; debug.Log(output); } }
以上でiOSアプリでシステムキーボードの使用ができました。