从Xcode场景编辑器完成后,添加SCNReferenceNode可以正常工作。但是,当使用下面的代码以编程方式完成时,场景中不会出现任何内容。
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)
}
}
答案 0 :(得分:3)
类文档声称加载策略指示SCNReferenceNode
默认情况下立即加载:
当参考节点加载其内容时(自动加载 根据loadingPolicy属性,或者在调用load时 方法),SceneKit加载引用的场景文件。所有的孩子 场景文件的根节点成为参考节点的子节点。
但是,默认情况下似乎没有发生这种情况。您必须像这样调用load
函数:
let referenceNode = SCNReferenceNode(URL: referenceURL
referenceNode.load()
或者,也许您也可以使用loadingPolicy
属性,但调用load
函数肯定有效。