如何在单一视图应用程序中添加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() 

} 

}