SceneKit:虽然在Xcode场景编辑器

时间:2016-08-19 01:37:47

标签: xcode scenekit scnnode

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

1 个答案:

答案 0 :(得分:3)

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

  

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

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

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

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