SceneKit:尽管在 Xcode 场景编辑器中有效,但无法以编程方式添加 SCNReferenceNode

SceneKit: cannot add SCNReferenceNode programmatically though works in Xcode Scene Editor

从 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)
        }
    }

class 文档声称加载策略指示 SCNReferenceNode 默认情况下立即加载:

When the reference node loads its content (either automatically, according to the loadingPolicy property, or when you call the load method), SceneKit loads the referenced scene file. All children of the scene file’s root node become children of the reference node.

但是,默认情况下似乎不会发生这种情况。您必须像这样调用 load 函数:

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

或者,也许您也可以使用 loadingPolicy 属性,但调用 load 函数绝对有效。