【问题标题】:SceneKit: cannot add SCNReferenceNode programmatically though works in Xcode Scene EditorSceneKit:虽然在 Xcode 场景编辑器中工作,但无法以编程方式添加 SCNReferenceNode
【发布时间】:2016-12-26 01:45:19
【问题描述】:

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

【问题讨论】:

    标签: xcode scenekit scnnode


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-24
      • 2020-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-06
      • 2018-03-01
      • 1970-01-01
      相关资源
      最近更新 更多