2

我已经建立了一个 AR 项目。一切似乎都在工作,但是当我呈现并关闭它的视图控制器时,我无法保持 AR 会话继续进行。

所以,我有一个 AR 会话设置,如 Xcode 的示例项目所示。很简单。然后,当用户点击屏幕上的按钮时,我会这样做:

let myVC = MyVC()
present(myVC, animated: true) {

}

MyCV 出现在屏幕上,然后我选择一个选项,然后屏幕被关闭:

dismiss(animated: true) {  }

关闭 MyVC 后,ARSession 在视图控制器中看起来冻结了。

所以,我想也许我必须告诉它再次运行,所以我在完成中添加了这一行:

dismiss(animated: true) { 
    self.sceneView.session.run(ARWorldTrackingSessionConfiguration())
}

没有什么。

然后我检查委托调用以确保我没有收到任何错误:

func session(_ session: ARSession, didFailWithError error: Error) {
    // Present an error message to the user

}

func sessionWasInterrupted(_ session: ARSession) {
    // Inform the user that the session has been interrupted, for example, by presenting an overlay

}

func sessionInterruptionEnded(_ session: ARSession) {
    // Reset tracking and/or remove existing anchors if consistent tracking is required

}

在该过程中,这些都不会被调用。

为什么在 AR 会话上预制和关闭一个简单的 ViewController 时,它会显示为冻结状态?

4

0 回答 0