夜風のMixedReality

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

HoloLens 2でシステムキーボードを使用する

本日はHoloLens 2枠です。

先日iPhoneのシステムキーボードを実装する際にTouchScreenKeyboardクラスを使用しました。

TouchScreenKeyboard はOSが提供するデフォルトのキーボードを起動するメソッドです。

サポートされているプラットフォームとして,Android,iOS,そしてWindows Storeアプリがありました。

redhologerbera.hatenablog.com

HoloLensはBluetooth接続により物理キーボードを使用することをサポートしていますが、デフォルトでは物理キーボードなしでシステムキーボードをHandtracikingのダイレクトタッチを使用することで使用できます。

ここでHoloLensのドキュメントを見るとHoloLensのシステムキーボードの呼び出しにTouchScreenKeyboardクラスの使用ができることが記載されていたため今回は実機で動かしてみます。

learn.microsoft.com

〇環境

・Unity2021.3.21f1

・MRTK3

・HoloLens 2

〇HoloLens2でシステムキーボードを使用する。

今回はMRTK3のEmpty Sceneのサンプルを流用し、

次のような処理を記述しました。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;

public class OSKeyboard : MonoBehaviour
{
    [SerializeField]
    TextMeshPro _text;
    // Start is called before the first frame update
    void Start()
    {
        OpenKeyboard();
    }

    // Update is called once per frame
    void Update()
    {
        if (keyboard != null && keyboard.status == TouchScreenKeyboard.Status.Done)
        {
             string output = keyboard.text;
            _text.text = output;
       }
    }
      private TouchScreenKeyboard keyboard;

    public void OpenKeyboard()
    {
        this.keyboard = TouchScreenKeyboard.Open("IPAddress", TouchScreenKeyboardType.Default); 
        this.keyboard.text = "";//デフォルトのテキスト
    }
}


〇実機で確認

実機での動作確認できました。

youtu.be

一部テキストが文字化けしているのはTextMesh側の問題です。

以上でHoloLens2でシステムキーボードを利用できました。