MRTK 2.4 で追加された Input fields UI_KeyboardInputField and TMP_KeyboardInputField を利用して HoloLens Keyboard を表示する
MRTK 2.4 で追加された Input fields TMP_KeyboardInputField and UI_KeyboardInputField を用いて,
HoloLens Keyboard を表示します.
MRTK 2.3 まで
MRTK 2.3 までは以下の記事にあるように,InputField を入力しようとしても,
HoloLens Keyboard が自動的に表示されないようになっておりました.
そのため,自分で処理を作る必要がありました.
using UnityEngine; using UnityEngine.UI; using Microsoft.MixedReality.Toolkit.Experimental.UI; [RequireComponent(typeof(MixedRealityKeyboard))] public class ShowMixedRealityKeyBoard : MonoBehaviour { private MixedRealityKeyboard m_MRKeyboard; void Awake() { m_MRKeyboard = gameObject.AddComponent<MixedRealityKeyboard>(); } public void ShowKeyboard(InputField inputField) { if (m_MRKeyboard == null) return; m_MRKeyboard.ShowKeyboard(m_MRKeyboard.Text); inputField.text = m_MRKeyboard.Text; } }
Input fields UI_KeyboardInputField and TMP_KeyboardInputField
MRTK 2.4 からキーボードを立ち上げるHelperクラスが追加されました.
- UI_KeyboardInputField
通常UIのInputField にアタッチすると,入力時に HoloLens Keyboard が表示されます.
- TMP_KeyboardInputField
TMPのInputField にアタッチすると,入力時に HoloLens Keyboard が表示されます.
Sample Scene
早速利用してみます. MRTK/Examples/Experimental/MixedRealityKeyboard/Sceneの配下にMixedRealityKeyboardExampleがあります.
HoloLens Keyboard は Unity Editor上で実行しても表示されません.
同様に,Holographic Remoting を利用した場合,HoloLens 2では表示されません.
ですので,HoloLens 2実機ビルドで動作確認するしかありません.
以下は,Holographic Remotingを利用した場合. わかりにくいですが,InputFieldにフォーカスしてもHoloLens Keyboardが出てません.
実機確認した場合が以下です.
— xrdnk (@xrdnk) 2020年6月5日
自作に当てはめる
まず Canvas は Convert to Unity Canvas 済とします.
Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/UI_KeyboardInputField.csをInputFieldオブジェクトにアタッチします. TMPの場合は,Assets/MRTK/SDK/Experimental/MixedRealityKeyboard/TMP_KeyboardInputField.csをアタッチします.
これでOKです.