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
功能,像这样。