2017-07-27 62 views
1

我正在使用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() 
} 

} 

回答

2

你缺少的委託方法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() 

} 

} 
相關問題