2017-08-03 61 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文件,並且它也可以工作。 –

相關問題