概述
我在开发基于 HoloLens 环境的软件时遇到了一个奇怪的问题。
我在 Unity 上构建了一个项目并导入了混合现实工具包 (MRTK) 包。按照官网的说明,我将 FBX 模型从 City Engine 导出到 HoloLens,Unity 控制台没有提示任何错误。
那么问题来了,当我使用VS 2017在Hololens中调试提议的程序时,HoloLens System就终止了,HoloLens的界面显示如下信息:“trying to map your around”(图1)。
2018.11.15 更新我重建了这个项目并导出到 Hololens Emulator,发生了这个错误。
If your machine has multiple graphics adapters, Unity may have created a WindowContext on the wrong adapter. If you experience a black screen when playing, please restart the Editor.
(Filename: C:\buildslave\unity\build\Runtime/VR/VRDevice.cpp Line: 218)
The referenced script on this Behaviour is missing!
(Filename: C:\buildslave\unity\build\Runtime/Mono/MonoBehaviour.cpp Line: 1510)
The referenced script on this Behaviour (Game Object 'International City_0') is missing!
(Filename: C:\buildslave\unity\build\Runtime/Mono/MonoBehaviour.cpp Line: 1753)
Setting up 1 worker threads for Enlighten.
Thread -> id: 550 -> priority: 1
UnloadTime: 6.645600 ms
Holographic Tracking State Lost. New State: 1
(Filename: C:\buildslave\unity\build\Runtime/VR/HoloLens/HoloLensWorldManager.cpp Line: 166)
Failed to get spatial stage statics - can't retrieve or interact with boundaries! Error code: '0x80040154'.
Hololens Emulator 中的结果 显示图片
但是,我注意到当 HoloLens 崩溃时 Unity 控制台没有显示任何错误。所以我做了以下测试来解决这个问题:
1 基于这个项目,我把所有的脚本和其他模型都去掉了,只留下MRTK配置的模型和场景(相机、光标、输入模块)。这没用。
2 基于这个项目,我用示例CUBE模型替换了FBX模型,其他保持不变。当我将修改后的项目发布到 HoloLens 时,没有出现这样的问题。
3 最后,我尝试将MRTK包去掉,只留下FBX模型,将release模型编译到Windows平台。程序运行正常,没有报错。
FBX 模型的大小约为 27 MB(图 2):
这些问题是HoleLens和FBX模型不兼容造成的吗?
我怎么解决这个问题?
Unity 编辑器版本
2017.2.1f1
混合现实工具包发布版本
2017.2.1.4