本日はHoloLens 2枠です。
先日iPhoneのシステムキーボードを実装する際にTouchScreenKeyboardクラスを使用しました。
TouchScreenKeyboard はOSが提供するデフォルトのキーボードを起動するメソッドです。
サポートされているプラットフォームとして,Android,iOS,そしてWindows Storeアプリがありました。
HoloLensはBluetooth接続により物理キーボードを使用することをサポートしていますが、デフォルトでは物理キーボードなしでシステムキーボードをHandtracikingのダイレクトタッチを使用することで使用できます。
ここでHoloLensのドキュメントを見るとHoloLensのシステムキーボードの呼び出しにTouchScreenKeyboardクラスの使用ができることが記載されていたため今回は実機で動かしてみます。
〇環境
・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 = "";//デフォルトのテキスト
}
}
〇実機で確認
実機での動作確認できました。
一部テキストが文字化けしているのはTextMesh側の問題です。
以上でHoloLens2でシステムキーボードを利用できました。