小编崔振宇*_*崔振宇的帖子

将 12 个 ARFrame 添加到数组后 ARSCNView 冻结(iOS/Swift)

我有一个ARSCNViewViewController.swift我想将它保存ARFrames到一个预先分配的数组中

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

但是,在处理大约 11-13 后ARFrames,整个ARSCNView将通过使用冻结

self.ARFrames.append(frame)
Run Code Online (Sandbox Code Playgroud)

奇怪的是,func session(_ session: ARSession, didFailWithError error: Error)在此过程中没有调用,也没有报告任何其他错误,应用程序没有崩溃,所有其他用户控件都可以正常工作,只有ARSCNView冻结和didpUdate 事件不会被调用。类似于ARSCNView 在添加具有强引用的 14 个 ARAnchor 子类对象时冻结,但那里的页面没有解决方案。同时也是应用后转到后台并返回,sessionWasInterrupted(:)sessionInterruptionEnded(:)被称为,即使现场查看被冻结之前。这是iOS 11的错误吗?

这是我在我的应用程序中使用的完整代码。

import UIKit

class ViewController: UIViewController,ARSCNViewDelegate,ARSessionDelegate {
    @IBOutlet var sceneView: ARSCNView!
    let configuration = ARFaceTrackingConfiguration()
    var ARFrames = [ARFrame]()
    var imgCount = 0

    override func viewDidLoad() {
        super.viewDidLoad()
        ARFrames.reserveCapacity(300)
        sceneView.delegate = self
        sceneView.session.delegate …
Run Code Online (Sandbox Code Playgroud)

iphone ios scenekit swift arkit

3
推荐指数
1
解决办法
693
查看次数

标签 统计

arkit ×1

ios ×1

iphone ×1

scenekit ×1

swift ×1