1

在 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)
        }
    }
4

1 回答 1

3

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

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

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

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

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

于 2016-08-19T03:43:38.637 回答