我在iPhone的.scn
文件夹中的文件夹中有一个Documents
文件。我一直在尝试使用SCNSceneSource
将.scn
文件转换为SCNNode
//fileDestFolderURL is the folder that holds the .scn file
let sceneSource = SCNSceneSource(url: fileDestFolderURL, options: [:])
let scene = sceneSource?.scene(options: [:])
print(scene) //prints nil
print(scene?.rootNode) //prints nil
然而,我一直得到nil
:(
我的最终目标是取SCNNode
并将其添加到ARSCNView
。
如果有人能提供他们的意见,我们将不胜感激!
答案 0 :(得分:3)
您应该使用SCNScene.init(url:options:)
代替SCNSceneSource
(主要用于Collada文件)。
答案 1 :(得分:-1)
我正在使用Objective-C来完成你所要求的。以下是一些可能对您有帮助的翻译代码。以下是使用Chair .scn模型的示例。我注意到最好在Models.scnassets文件夹中使用.scn文件
class Chair {
func loadModel() {
let virtualObjectScene = SCNScene(named:"Models.scnassets/chair/chair.scn"")
let wrapperNode = SCNNode()
for child: SCNNode in virtualObjectScene?.rootNode?.childNodes {
wrapperNode.addChildNode(child)
}
addChildNode(wrapperNode)
}
}
我所做的是实例化此Chair类的对象,然后在此对象上调用loadModel。之后我可以将它作为子节点添加到场景的根节点,它出现在场景中。