HoloLensアプリをUnityで作成していると文字の入力に困る事があります。
結局、Direct XのD3Dの画面ではキーボードは呼び出すことができないので、XAMLの画面を呼び出すことになるのですが、 TouchScreenKeyboardを使えばそのあたり自動でやってくれます。
UnityのCanvas UIもそのままでは動かないので、無理にUIを使わずに、「TextMeshにアタッチして、Airタップでで切り替え」ができるスクリプトを作りました。
//(InputField .cs)
using UnityEngine;
using System.Collections;
public class InputField : MonoBehaviour
{
TouchScreenKeyboard keyboard;
public static string keyboardText = "Input any";
void OnSelect()
{
if (keyboard == null)
keyboard = new TouchScreenKeyboard(keyboardText, TouchScreenKeyboardType.Default, false, false, false, false, "sample prompting text that goes above the textbox");
else
keyboard.active = true;
}
void Update()
{
if (keyboard != null && keyboard.active == false)
{
if (keyboard.done == true)
{
keyboardText = keyboard.text;
keyboard = null;
gameObject.GetComponent<TextMesh>().text = keyboardText;
}
}
}
}
TextMeshをタップすると、こんな感じのしょぼいXAMLの入力画面が表示されます。

関連ドキュメント
その他、
試してないですが、D3Dで使えるAssetもあるようです。yuujiさんの記事
あとは、音声入力にしちゃうとか・・
- 出版社/メーカー: 日本マイクロソフト
- 発売日: 2016/11/24
- メディア: Video Game
- この商品を含むブログを見る
