gpt4 book ai didi

ios - 在多个 ViewController 上共享 ARSCNView

转载 作者:行者123 更新时间:2023-11-28 07:55:30 26 4
gpt4 key购买 nike

我想构建一个应用,让用户可以在包含不同内容的不同 AR View 之间滑动,但在同一个 AR session 中 - 这样他们就不需要每次都搜索平面/特征.

我尝试通过单例将 ARSCNView 从一个 ViewController 传递到另一个。但它给了我错误:

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key sceneView.'

在这种情况下使用什么模式才是正确的?

主视图 Controller :

extension MainViewController: ARSCNViewDelegate, ARSessionDelegate 
{
func initAR(){
ArSceneView.delegate = self
ArSceneView.scene = scene
ArSceneView.debugOptions = [ARSCNDebugOptions.showFeaturePoints]
MainViewController.manager.ArSession=ArSceneView
}

override func viewWillAppear(_ animated: Bool) {
let configuration = ARWorldTrackingConfiguration()
ArSceneView.session.run(configuration)
}

}

另一个 View Controller :

class AnotherViewController:  {
override func viewDidLoad() {
MainViewController.manager.ArSession.delegate = self
}
}

编辑:我找到了一个解决方法 - 如果您想在不同的 ViewController 上使用相同的 AR session ,请随意使用 UIPageViewController 和 SCNView,然后它会在连接到 UIPageViewController 的不同 View 中持久存在。

最佳答案

这个话题本身就很有趣。所以我尝试了 scenview 的简单传递,在 prepareForSeague 中从一个 View Controller 到下一个 View Controller 的 session 。它没有任何错误地切换,但场景 View 是空的。现在我不确定它是重置了还是开始了全新的 session 。我真的很想知道你的是否有效。

对于您的问题 - 如果您的 AnotherViewController 中没有任何其他特定功能,您可以在内容之间滑动。

关于ios - 在多个 ViewController 上共享 ARSCNView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48213611/

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