夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

Unity iOSアプリでシステムキーボードを使用する

本日は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 電話番号の入力に適したレイアウトのキーボード

docs.unity3d.com

入力した値は次のように取得できます。

 string output = keyboard.text;

この値はユーザーはキーの入力を完了しエンターボタンを押した際に取得する必要があります。

これは次のように実装できます。

 void Update()
      {

        if (keyboard != null && keyboard.status == TouchScreenKeyboard.Status.Done)
        {
             string output = keyboard.text;
            debug.Log(output);
       }
    }

以上でiOSアプリでシステムキーボードの使用ができました。