gpt4 book ai didi

ios - 当我回到包含 ARSCNView 的 View Controller 时,相机卡住。如何在 ARSCNView 停止工作的情况下进入和离开这个 View Controller ?

转载 作者:行者123 更新时间:2023-11-30 10:51:32 25 4
gpt4 key购买 nike

如何初始化 ARSCNView

var sceneView: ARSCNView?

override func viewDidLoad() {
super.viewDidLoad()
if ARConfiguration.isSupported{
sceneView = ARSCNView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: UIScreen.main.bounds.size.height))

view.addSubview(sceneView!)

sceneView!.delegate = self
// Show statistics such as fps and timing information
sceneView!.showsStatistics = false

// Create a new scene
let scene = SCNScene(named: "totens.scnassets/Main.scn")!
// Set the scene to the view
sceneView!.scene = scene
}
}

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

guard let referenceImages = ARReferenceImage.referenceImages(inGroupNamed: "TotensImages", bundle: nil) else { return }

let configuration = ARImageTrackingConfiguration()
configuration.trackingImages = referenceImages
let options: ARSession.RunOptions = [.removeExistingAnchors]

sceneView!.session.run(configuration, options: options)
}

当关闭此 View Controller 并尝试重新启动 session 时,相机停止出现。有人知道如何帮助我解决这个问题吗?谢谢

最佳答案

好吧,这不是修复它的最佳方法,但它可能会起作用。

在具有 ARScene View 的 ViewController 上,您必须初始化一个 bool 标志,该标志将检查您是否必须运行配置。所以..

var shouldDoThingsInViewWillAppear: Bool = true
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if shouldDoThingsInViewWillAppear {
shouldDoThingsInViewWillAppear = false
guard let referenceImages = ARReferenceImage.referenceImages(inGroupNamed: "TotensImages", bundle: nil) else { return }

let configuration = ARImageTrackingConfiguration()
configuration.trackingImages = referenceImages
let options: ARSession.RunOptions = [.removeExistingAnchors]

sceneView!.session.run(configuration, options: options)
}

}

如果这项工作有效,则意味着您不应运行两次 session ,或者不应添加两次跟踪图像。

如果没有,请尝试对 viewDidAppear 而不是 ViewWillAppear 执行相同的操作。

如果仍尝试将运行方法更改为

sceneView.session.run(configuration, options: [.resetTracking, .removeExistingAnchors])

关于ios - 当我回到包含 ARSCNView 的 View Controller 时,相机卡住。如何在 ARSCNView 停止工作的情况下进入和离开这个 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54419925/

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