gpt4 book ai didi

ios - ARKit:暂停 session 不会停止要调用的场景

转载 作者:行者123 更新时间:2023-12-04 04:20:34 26 4
gpt4 key购买 nike

我正在使用 ARKitSpriteKit .我的 AR 功能不是我的应用程序的核心功能,用户可以选择使用 ARSKView 导航到 viewController我在其中配置和设置 SKSceneARsession .

当用户导航回来时,我暂停 session :

override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
sceneView.session.pause()
}

然后 viewController 从它被推送的 navigationController 弹出。但我看到 func update(_ currentTime: TimeInterval)在我的 SKScene子类不断被调用......这也是阻止它的适当方法?我以为暂停 ARSession也将停止现场。

编辑:当我从持有 ARSKView 的 View Controller 导航回来时它被取消初始化,我看到 SKScene仍在内存中,每次我再次导航到与 AR 相关的 View Controller 时都会创建一个新的。所以,如果我在那里导航 N 次,我看到我有 N SKScene s 在内存中。导航返回时如何适本地删除场景? scene ARsession 的属性(property)是只读的。

最佳答案

这听起来像是一个内存保留问题。确保您的 SKScene 子类中的任何节点都已正确删除和取消初始化。
将场景委托(delegate)设置为 nil,将 VC 中引用的任何节点或节点数组设置为 nil。

我在导航 Controller 中嵌入了 2 个 VC 进行了一个简单的测试,第一个有一个带有开始按钮的 View ,第二个是 ARVC。
我运行 session ,将我的自定义场景委托(delegate)设置为 ARVC,当我点击后退按钮时,一切都会自行停止并且我的 ARVC 正在弹出。内存中什么都没有。

因此,请确保您手动删除所有节点及其动画、约束、操作以及与您的自定义 SKScene 子类相关的任何内容。
如果有帮助,也不要害怕调用 sceneView.presentScene(nil)。

关于ios - ARKit:暂停 session 不会停止要调用的场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46681923/

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