gpt4 book ai didi

ios - ARKit session 暂停且未恢复

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:09:19 27 4
gpt4 key购买 nike

在我的 ARKit 应用程序中,我展示了一个模态窗口。当我关闭模式并返回到 ARSCNView 时,我发现 session 由于以下代码而暂停:

 override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)

// Pause the view's session
sceneView.session.pause()
}

当我关闭模式并返回到 ARKit 相机 View 屏幕时,这段代码被触发:

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)

// Create a session configuration
let configuration = ARWorldTrackingSessionConfiguration()

// Run the view's session
sceneView.session.run(configuration)
}

但是这段代码永远不会恢复 session 。屏幕完全定格在它读到的最后一张图片上。有什么想法吗?

我将 viewDidAppear 代码更新为以下内容。它仍然卡在相机屏幕上,图像卡住。

  override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)

// Create a session configuration
let configuration = ARWorldTrackingSessionConfiguration()

sceneView.session.delegate = self

if self.isPaused {
sceneView.session.run(sceneView.session.configuration!)
} else {
// Run the view's session
sceneView.session.run(configuration)
}


}

最佳答案

不确定为什么你的 session 没有恢复,但是......这通常不是你想要的情况。

Apple 的 ARKit 示例代码附带的自述文件中的注意事项(附在 WWDC17 session on ARKit 中):

Avoid interrupting the AR experience. If the user transitions to another fullscreen UI in your app, the AR view might not be an expected state when coming back.

Use the popover presentation (even on iPhone) for auxiliary view controllers to keep the user in the AR experience while adjusting settings or making a modal selection. In this example, the SettingsViewController and VirtualObjectSelectionViewController classes use popover presentation.

更详细一点:如果您暂停 session ,当您的用户离开另一个全屏 View Controller 时,它不会跟踪世界。这意味着当您恢复时,放置在场景中的任何虚拟内容都不会位于您离开它的位置(相对于相机)。

关于ios - ARKit session 暂停且未恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45021584/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com