SceneKit - Как показать файл SCN в виде сцены? - PullRequest
1 голос
/ 26 марта 2020

Я хочу показать 3D-объект в своем приложении, поэтому я использовал SceneKit для этого. Поскольку я никогда ранее не использовал этот модуль, я столкнулся с двумя проблемами при отображении объекта:

  • Когда я ввел имя файла scn в sceneView на раскадровке, он показывает, как он есть, и Я не могу взаимодействовать с ним.

  • Когда я использую класс SCNScene, чтобы ввести имя, как показано ниже, он ничего не показывает и заканчивается потоком, найденным nil.

Вот код:

private func setupScene() {

   let url = Bundle(for: CarModelVC.self).url(forResource: "art.scnassets/veh", 
                                            withExtension: "scn")
   scnScene = SCNSceneSource(url: url!)?.scene()
   self.scene = scnScene
}

1 Ответ

0 голосов
/ 26 марта 2020

Используйте следующий код, чтобы получить то, что вы хотите:

import SceneKit

class ViewController: UIViewController {

    func setupScene() -> SCNScene? {   

        guard let url = Bundle(for: CarModelVC.self).url(forResource: "art.scnassets/veh",
                                                       withExtension: "scn")
        else { return nil }

        let scnScene = SCNSceneSource(url: url)?.scene()       
        return scnScene!
    }

    override func viewDidLoad() {
        super.viewDidLoad()        
        let sceneView = self.view as! SCNView

        sceneView.scene = self.setupScene()
    }
}
...