本日は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アプリでシステムキーボードの使用ができました。