SceneKit:无法以编程方式添加SCNReferenceNode,虽然可以在Xcode场景编辑器中工作

问题描述:

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

类文档权利要求,所述加载策略指示SCNReferenceNode立即通过默认加载​​:

当参考节点根据所述loadingPolicy属性时,或者当加载其内容(自动地, 你调用负载 方法),SceneKit加载引用的场景文件。 场景文件的根节点的所有子节点都成为参考节点的子节点。

但是,这似乎并没有默认情况下发生。另外

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

,也许你可以用loadingPolicy性能发挥好,但调用load功能肯定能行:你必须调用load功能,像这样。