相关疑难解决方法(0)

如何释放RealityKit ARView()?

我无法从内存中释放我的 RealityKit ARView()

\n\n

我知道 ARKit + SceneKit \xe2\x80\x93 存在类似问题,并具有如下解决方法:/sf/answers/3774381131/ \n这确实解决了我的问题不幸的是问题。

\n\n

上述解决方案通过手动删除所有“可疑”内容来发挥作用。这正是我在更广泛的范围内所做的:

\n\n
class ViewController_ARViewMemoryTest: UIViewController {\n\n    var arView: ARView?\n\n    init() {\n        super.init(nibName: nil, bundle: nil)\n        arView = ARView(frame: .zero)\n    }\n\n    required init?(coder: NSCoder) {\n        fatalError("init(coder:) has not been implemented")\n    }\n\n    deinit {\n        doEverythingThatsNeeded()\n    }\n\n    public func doEverythingThatsNeeded() {\n        self.arView?.session.pause()\n        self.arView?.session.delegate = nil\n        self.arView?.removeFromSuperview()\n        // Quite a few more removals and resets here, ie. for Combines AnyCancellables\n        self.arView = nil\n    }\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我也从外部调用 doEverythingThatsNeeded() :

\n\n
aRViewMemoryTest?.doEverythingThatsNeeded()\naRViewMemoryTest?.arView …
Run Code Online (Sandbox Code Playgroud)

swift arkit swiftui realitykit

6
推荐指数
1
解决办法
1802
查看次数

Swift ARKit如何完全杀死ARSession?

ARSCNView正在跑步ARSession。您可以session.pause()肯定地暂停会话,但这仍然有效,可以使会话继续运行。我尝试ARSCNView通过将其从其超级视图中删除来取消分配。该ARSCNView确实重新分配,但ARSession仍运行后!您不能分配nilARSession任何一个。我可以看到ARSessionDelegate

func session(_ session: ARSession, didUpdate frame: ARFrame) 
Run Code Online (Sandbox Code Playgroud)

仍在被叫!

完成后,如何用ARKit彻底擦拭干净?

可能吗?

swift arkit arscnview

4
推荐指数
1
解决办法
1079
查看次数

标签 统计

arkit ×2

swift ×2

arscnview ×1

realitykit ×1

swiftui ×1