Я создаю приложение AR (Xcode 10.1, Swift 4.2.1).
Я хочу загрузить USDZ
3D-объект в пустую сцену SceneKit, а затем обработать его как MDL
сетку.
Вот мой код:
import ARKit
import SceneKit.ModelIO
let scene = SCNScene(named: "art.scnassets/emptyScene.scn")!
if let filePath = Bundle.main.path(forResource: "Helicopter",
ofType: "usdz",
inDirectory: "art.scnassets") {
let refURL = URL(fileURLWithPath: filePath)
let refNode = SCNReferenceNode(url: refURL)
refNode?.load()
scene.rootNode.addChildNode(refNode!)
}
let helicopterGeo = refNode!.geometry
let mdlMesh = MDLMesh(scnGeometry: helicopterGeo!) // ERROR APPEARS HERE
try! mdlMesh.makeVerticesUniqueAndReturnError()
let flattenedGeometry = SCNGeometry(mdlMesh: mdlMesh)
let flattenedNode = SCNNode(geometry: flattenedGeometry)
scene.rootNode.addChildNode(flattenedNode)
Но компилятор выдает мне ошибку:
"Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value"
Вопрос в следующем: какой подход следует использовать для назначения геометрии "Helicopter.usdz"
константе helicopterGeo
?
Помогите найти обходной путь, пожалуйста!
Вы можете скачать USDZ
файл для тестирования ЗДЕСЬ.
let helicopterGeo = refNode!.geometry
? - person Steve O'Connor   schedule 17.10.2018