如何从 .usdz 创建 SCNNode?

Ser*_*gio 7 ios swift scnnode arkit usdz

我已经下载了苹果提供的 .usdz 模型:https : //developer.apple.com/arkit/gallery/

但是现在,我想用这些模型之一创建一个 SCNNode,所以我这样做是为了获取节点:

guard let urlPath = Bundle.main.url(forResource: "retrotv", withExtension: "usdz") else {
    return
}
let mdlAsset = MDLAsset(url: urlPath)
let modelRootNode = SCNScene(mdlAsset: mdlAsset).rootNode
Run Code Online (Sandbox Code Playgroud)

然后我将它添加到场景中,结果是这样的:

在此处输入图片说明

为什么它没有纹理?

如您所见,我已将下载的 .usdz 文件放入我的项目目录中的文件夹中:

在此处输入图片说明

Fla*_*urt 13

添加 .USDZ 对象的正确方法实际上是使用文件的 URL 创建场景:

 let scene = try! SCNScene(url: usdzURL, options: [.checkConsistency: true])
Run Code Online (Sandbox Code Playgroud)

甚至通过参考节点创建:

 let referenceNode = SCNReferenceNode(url: usdzURL)
 referenceNode.load()
Run Code Online (Sandbox Code Playgroud)