Hololens 应用程序在启动画面处停止

Hololens application stopping at splash screen

我正在为 Hololens 开发一个 Unity 项目,它使用相机捕捉图片,将它们发送到照片识别 API 并显示结果。该项目在 unity 中工作得很好,但在 emulator/Hololens 上却不行。

不幸的是,我一下子写了很多代码,所以我不知道这个问题是从什么时候开始的。在调试模式下构建项目并在 Hololens/emulator 上 运行 后出现问题。在 Hololens 上,我看到开头 window(打开任何应用程序后看到的那个)。在我放置它之后,我在 Visual Studio 中的输出 window 上看到 End showing splash screen.,它只是不再继续(但也没有冻结,只是什么都不做)。

我不知道它是从哪里来的,因为没有抛出异常,但我怀疑相机是原因。早些时候,我不得不评论这行代码:

transform.position = Camera.main.ScreenToWorldPoint(new Vector3((CameraManager.Resolution.width * .5f), (CameraManager.Resolution.height * .5f), 10));

因为函数 ScreenToWorldPoint 抛出以下异常:

Screen position out of view frustum (screen pos 0.000000, 0.000000, 10.000000) (Camera rect 0 0 0 0)

如您所见,相机矩形的大小为 0。我什至尝试直接记录相机的尺寸以确保 (Debug.Log(Camera.main.pixelWidth + ", " + Camera.main.pixelHeight)),果然,它们在 (0, 0) Hololens/emulator.

我确定支持网络摄像头,并且我的摄像头设置都已设置,但这也没有帮助。

所以我不确定这是问题的原因还是只是一个症状。而且我无法从任何地方开始,因为输出和错误 window 都没有显示任何错误。任何帮助或建议将不胜感激。

感谢阅读!

编辑:Here's 从头到尾的整个输出日志。

Edit2:我不知道这是否重要,但如果我暂停执行(在 Visual Studio 中),它似乎总是在 Build/ProjectName/App.css =>第 78 行:

[MTAThread]
static void Main(string[] args)
{
   var app = new App();
   CoreApplication.Run(app); //<===== Here
}

您可能想要检查任何 Start() 方法。您可能有一些 CPU 密集的代码。即使它在 Unity 中 运行 顺利,并不意味着它会在 HoloLens 上轻松 运行 因为它们 CPU 并不强大。

此外,为避免出现任何相机问题,请务必使用此相机预制件 存储库: https://github.com/Microsoft/MixedRealityToolkit-Unity

这些只是一些想法,希望对您有所帮助!

原来我没有在 PlayerSettings 的其他设置下启用 "Virtual Reality Supported"。这真的很愚蠢,但我希望这对某人有所帮助。