播放模式下Holographic Remoting崩溃伴XRInputSubsystem错误问题求解
针对Unity 2019.4 + MRTK 2.5 XRInputSubsystem报错的解决方案
对应报错内容如下:
[XRInputSubsystem] A device disconnection with the id 2000000037 has been reported but no device with that id was connected
该报错是Unity 2019.4 LTS版本搭配MRTK 2.5时,XR输入子系统的设备状态同步bug导致的,会误触发编辑器自动暂停逻辑,可通过以下方案解决:
1. 临时快速修复(无需改代码/升级版本)
- 关闭Unity编辑器的错误暂停功能:点击控制台窗口右上角的「Error Pause」按钮,取消选中状态即可。该操作会阻止编辑器在遇到报错时自动暂停,不会屏蔽错误日志输出,不影响其他正常调试逻辑。
- 若需要排查其他严重错误,可临时重新开启该功能。
2. 代码层面修复(永久屏蔽该无效报错)
创建自定义的日志过滤脚本,放到项目的Editor目录下,即可自动拦截该无效报错:
using UnityEngine; using UnityEditor; [InitializeOnLoad] public static class XRInputErrorFilter { static XRInputErrorFilter() { Application.logMessageReceived += FilterXRDisconnectError; } private static void FilterXRDisconnectError(string condition, string stackTrace, LogType type) { if (type == LogType.Error && condition.Contains("[XRInputSubsystem] A device disconnection with the id") && condition.Contains("has been reported but no device with that id was connected")) { // 拦截该错误,避免触发编辑器暂停逻辑,可选输出警告提示 Debug.LogWarning($"已屏蔽无效XR输入报错:{condition}"); } } }
- 该脚本仅在编辑器环境生效,不会打包到最终的HoloLens应用中,不会影响线上功能。
3. 版本兼容修复(彻底解决底层问题)
- 升级MRTK版本到2.7.3以上:MRTK从2.7.0版本开始修复了多个和Unity 2019.4 LTS XR子系统兼容的输入状态同步bug,该报错在高版本MRTK中已被官方修复。
- 升级前建议做好项目全量备份,避免MRTK API变更导致的现有功能报错。
4. 编辑器配置优化
- 打开Edit > Project Settings > XR Plug-in Management,确认OpenXR插件版本为1.2.0以上,且HoloLens 2目标平台的配置中,已禁用不必要的输入设备模拟选项。
- 若平时开发仅使用HoloLens真机调试,可关闭MRTK的输入模拟功能:打开MRTK Settings > Input > Input Data Providers,移除「Windows Mixed Reality Input Simulation Provider」即可。
内容的提问来源于stack exchange,提问作者Sajjad Rostami
相关产品推荐
相关产品推荐

