【问题标题】:SCNKit ERROR removing the root node of a scene from its scene is not allowed不允许从场景中删除场景的根节点的 SCNKit 错误
【发布时间】:2014-09-02 09:54:52
【问题描述】:

我有以下代码(Swift 中面向 iOS 的 SceneKit):

let scnView = self.view as SCNView

let scene = SCNScene()

let levelScene = SCNScene(named: "level")
scene.rootNode.addChildNode(levelScene.rootNode)

scnView.scene = scene
scnView.backgroundColor = UIColor.grayColor()

scnView.allowsCameraControl = true
scnView.showsStatistics = true

问题是,在scene.rootNode.addChildNode(level.rootNode) 我在控制台中收到以下错误:

[SCNKit ERROR] removing the root node of a scene from its scene is not allowed

我不确定为什么会出现此错误,但我正在尝试加载我的 level.dae 文件并将其添加到场景中。从我在模拟器(和设备)中看到的情况来看,它加载正常。

我应该怎么做才能防止出现错误消息?

【问题讨论】:

    标签: ios swift scenekit


    【解决方案1】:

    根节点很特殊——它们不能从场景中脱离父节点并移动到新场景中。您需要从levelScene 中拉出一个子节点或后代节点才能进入您的游戏场景。例如:

    let heroScene = SCNScene(named: "hero.dae")
    if let heroNode = heroScene.rootNode.childNodeWithName("heroGroup", recursively: true) {
        scene.rootNode.addChildNode(heroNode)
    }
    

    或全部移动:

    for node in levelScene.rootNode.childNodes as [SCNNode] {
        scene.rootNode.addChildNode(node)
    }
    

    【讨论】:

    • 感谢@rickster 的洞察力。
    猜你喜欢
    • 1970-01-01
    • 2015-04-28
    • 2023-03-12
    • 2018-11-10
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多