You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Unity Editor/Remote Rendering中启用Hololens 2系统键盘?

解决Unity Editor/Remote Rendering下MRTK唤起沉浸式系统键盘的方法

1. 检查MRTK输入配置

  • 打开Project Settings > Mixed Reality Toolkit > Input,进入Input System Profile
  • 找到Keyboard Settings模块:
    • 确保Enable Keyboard已勾选
    • 将Keyboard Type设置为System(Editor下会调用Windows系统虚拟键盘,Remote Rendering环境下适配远程输入)
    • 勾选Show Keyboard On Focus,让输入字段获得焦点时自动唤起键盘

2. 代码手动触发虚拟键盘

如果自动唤起逻辑不生效,可以通过代码强制调用MRTK的键盘服务:

using Microsoft.MixedReality.Toolkit;
using Microsoft.MixedReality.Toolkit.Input;
using TMPro;
using UnityEngine;

public class KeyboardHandler : MonoBehaviour
{
    [SerializeField] private TMP_InputField targetInputField;

    private void OnEnable()
    {
        if (targetInputField != null)
        {
            targetInputField.onSelect.AddListener(_ => OpenVirtualKeyboard());
        }
    }

    private void OnDisable()
    {
        if (targetInputField != null)
        {
            targetInputField.onSelect.RemoveListener(_ => OpenVirtualKeyboard());
        }
    }

    private void OpenVirtualKeyboard()
    {
        var keyboardService = CoreServices.InputSystem?.KeyboardService;
        if (keyboardService == null) return;

        keyboardService.ShowKeyboard(targetInputField.text, targetInputField.characterLimit, false);
        keyboardService.KeyboardTextSubmitted += UpdateInputFieldText;
        keyboardService.KeyboardHidden += CleanupKeyboardEvent;
    }

    private void UpdateInputFieldText(object sender, KeyboardTextEventArgs args)
    {
        targetInputField.text = args.Text;
    }

    private void CleanupKeyboardEvent(object sender, System.EventArgs args)
    {
        var keyboardService = CoreServices.InputSystem?.KeyboardService;
        if (keyboardService == null) return;

        keyboardService.KeyboardTextSubmitted -= UpdateInputFieldText;
        keyboardService.KeyboardHidden -= CleanupKeyboardEvent;
    }
}
  • 将脚本挂载到包含TMP_InputField的GameObject上,指定targetInputField
  • 输入字段获得焦点时,会自动唤起系统虚拟键盘(Editor下调用Windows系统键盘,Remote Rendering环境下适配远程输入通道)

3. Remote Rendering环境额外配置

如果使用Azure Remote Rendering:

  • 确保ARR Session配置中勾选Enable Input,开启远程输入通道
  • 检查MRTK的Input System Profile > Remote Input模块,确认已配置接收远程输入
  • 上述代码的键盘调用逻辑会自动通过远程通道同步,在Editor端唤起本地虚拟键盘,或在Hololens端触发系统键盘

注意事项

  • Unity Editor下,系统虚拟键盘依赖Windows的Touch Keyboard and Handwriting Panel Service,确保该服务未被禁用
  • 旧版MRTK(v2.x)的配置路径略有差异,核心是找到Keyboard Settings并启用系统键盘选项

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 18:35:26