我正在为Hololens开发Unity项目,该项目使用相机捕捉图片,将它们发送到照片识别API并显示结果。该项目在统一性方面完美无缺,但在仿真器/ Hololens上无效。
不幸的是,我一次写了很多代码,所以我不知道这个问题从什么时候开始。在构建项目并在调试模式下在Hololens / emulator上运行它之后,问题显示出来了。在Hololens上,我看到了开始窗口(打开任何应用程序后看到的窗口)。在我放置之后,我在Visual Studio的“输出”窗口中看到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)
),当然,它们在Hololens上是(0,0)/仿真器。
我确保支持网络摄像头,并且我的相机设置都已设置,但这也无济于事。
所以我不确定这是问题的原因还是仅仅是症状。而且我无法在任何地方启动,因为输出和错误窗口都没有显示任何错误。任何帮助或建议将不胜感激。
感谢阅读!
从头到尾编辑:Here's整个输出日志。
Edit2:我不知道这是否有意义,但如果我暂停执行(在Visual Studio中),它似乎总是在Build / ProjectName / App.css =>第78行:
[MTAThread]
static void Main(string[] args)
{
var app = new App();
CoreApplication.Run(app); //<===== Here
}
答案 0 :(得分:1)
您可能想要检查任何Start()方法。您可能有一些CPU密集型的代码。即使它在Unity中运行顺畅,也不意味着它可以在HoloLens上轻松运行,因为它们的CPU功能不强。
另外,为了避免任何相机问题,请使用相机预制件 存储库: 的 https://github.com/Microsoft/MixedRealityToolkit-Unity 强>
这些只是一些想法,希望它有所帮助!
答案 1 :(得分:0)
原来我没有在PlayerSettings中的其他设置下启用“Virtual Reality Supported”。这真的很蠢,但我希望这有助于某人。