Написал простое приложение AR, но оно останавливается, когда я приостанавливаю и перезапускаю сеанс.
В раскадровке только 2 кнопки и ARSCNView.
Кнопка «Добавить» предназначена для добавление поля в сцену.
И кнопка «сброс» предназначена для перезапуска сеанса ARSCNView.
Ниже приведен код.
import UIKit
import ARKit
class ViewController: UIViewController {
@IBOutlet weak var sceneView: ARSCNView!
let configuration = ARWorldTrackingConfiguration()
override func viewDidLoad() {
super.viewDidLoad()
self.sceneView.debugOptions = [ARSCNDebugOptions.showFeaturePoints, ARSCNDebugOptions.showWorldOrigin]
self.sceneView.session.run(configuration)
}
@IBAction func add(_ sender: Any) {
let node = SCNNode()
node.geometry = SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 0)
node.geometry?.firstMaterial?.diffuse.contents = UIColor.blue
node.position = SCNVector3(0, 0, -0.3)
self.sceneView.scene.rootNode.addChildNode(node)
}
@IBAction func reset(_ sender: Any) {
self.restartSession()
}
func restartSession() {
self.sceneView.session.pause()
self.sceneView.scene.rootNode.enumerateChildNodes { (node, _) in
node.removeFromParentNode()
}
self.sceneView.session.run(configuration, options: [.resetTracking, .removeExistingAnchors])
}
}
Работает нормально, когда я нажмите кнопку «Добавить».
Хотя он генерирует одни и те же блоки в одной и той же позиции.
Проблема в функции «сброса».
Журналы ошибок похожи :
World Tracking[826:126965] Metal GPU Frame Capture Enabled
World Tracking[826:126965] Metal API Validation Enabled
World Tracking[826:127217] [Technique] World tracking performance is being affected by resource constraints [3]
World Tracking[826:127217] [Technique] VIO error callback: 24034.921741, 3, Frame time stamps are either out of order or repeating
И Xcode показывает Thread 1: EXC_BAD_ACCESS (code=1, address=0x50)
в AppDelegate.swift
:
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate { // Thread 1: EXC_BAD_ACCESS (code=1, address=0x50)
...
«World Tracking» - это название проекта.
Любые советы или комментарии будут оценены.
Заранее спасибо.