2016-08-19 48 views
1

添加SCNReferenceNode可以在Xcode場景編輯器完成後工作。但是,如果使用下面的代碼以編程方式完成,則場景中不會顯示任何內容。SceneKit:無法以編程方式添加SCNReferenceNode,雖然可以在Xcode場景編輯器中工作

filePath包含print語句證明的有效路徑以及逐步執行代碼。

幫助?

if let filePath = NSBundle.mainBundle().pathForResource("RefTest", ofType: "scn", inDirectory: "TestScene.scnassets") { 
     let referenceURL = NSURL(fileURLWithPath: filePath) 

     if #available(iOS 9.0, *) { 
      let referenceNode = SCNReferenceNode(URL: referenceURL) 
      scene!.rootNode.addChildNode(referenceNode!) 
      print(referenceNode) 
     } 
    } 

回答

2

類文檔權利要求,所述加載策略指示SCNReferenceNode立即通過默認加載​​:

當參考節點根據所述loadingPolicy屬性時,或者當加載其內容(自動地, 你調用負載 方法),SceneKit加載引用的場景文件。 場景文件的根節點的所有子節點都成爲參考節點的子節點。

但是,這似乎並沒有默認情況下發生。另外

let referenceNode = SCNReferenceNode(URL: referenceURL 
referenceNode.load() 

,也許你可以用loadingPolicy性能發揮好,但調用load功能肯定能行:你必須調用load功能,像這樣。

相關問題