如何在单一视图应用程序中添加ARKit
问题描述:
我正在使用Xcode 9 Beta和Swift 4。如何在单一视图应用程序中添加ARKit
创建单一视图应用程序。我怎样才能在我的单一应用程序视图中使用论证现实功能? 这是我的代码。那里没有任何错误。但我无法在我的场景中得到任何结果。
import UIKit
import ARKit
import SceneKit
class ViewController: UIViewController {
@IBOutlet weak var scaneView: ARSCNView!
override func viewDidLoad() {
super.viewDidLoad()
let scene = SCNScene(named: "art.scnassets/ship.scn")!
scaneView.scene = scene
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let configuration = ARWorldTrackingSessionConfiguration()
scaneView.session.run(configuration)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
scaneView.session.pause()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
答
你缺少的委托方法ARSCNViewDelegate 我觉得这个代码正常工作,并显示在您的现场查看结果
import UIKit
import ARKit
import SceneKit
class ViewController: UIViewController, ARSCNViewDelegate {
@IBOutlet weak var sceneView: ARSCNView!
override func viewDidLoad() {
super.viewDidLoad()
sceneView.delegate = self
sceneView.showsStatistics = true
let scene = SCNScene(named: "art.scnassets/ship.scn")!
sceneView.scene = scene
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let configuration = ARWorldTrackingSessionConfiguration()
sceneView.session.run(configuration)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
sceneView.session.pause()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}