2017-08-03 71 views
0

我在iPhone的Documents文件夹的文件夹中有一个.scn文件。我一直在尝试使用SCNSceneSource打开.scn文件作为SCNNode如何以编程方式将.scn从Documents文件夹转换为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

如果有人可以提供他们的意见,将不胜感激!

回答

-1

我使用Objective-C来完成你在做什么的国王。这里有一些翻译的代码可以帮助你。这是一个Chair .scn模型的例子。我注意到htat最好是有在Models.scnassets文件夹

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) 
    } 
} 

我要做的就是实例化这个椅子类的一个对象,然后调用loadModel此对象的.scn文件。之后,我可以将它作为子节点添加到场景的根节点,并出现在场景中。

+0

但问题是我的'.scn'文件不在我的应用程序中,当我预先运行(即它不在我的应用程序的'Models.scnassets'中)。我正在下载'.scn'文件,所以它在iPhone的'Documents'文件夹中。所以我不能调用'SCNScene(命名为:“Models.scnassets/chair/chair.scn”)' – 14wml

+0

您是否尝试过使用此功能,将文件路径名更改为您的.scn文件位于文档目录中的任何位置?我已经将它用于Models.scnassets以外的.scn文件,并且它也可以工作。 –

相关问题