SCNKit ERROR不允许从场景中删除场景的根节点

Byt*_*Guy 6 ios scenekit swift

我有以下代码(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
Run Code Online (Sandbox Code Playgroud)

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

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

我不知道为什么会出现这个错误,但我正在尝试加载我的level.dae文件并将其添加到场景中.从我在模拟器(和设备)中看到的,它加载很好.

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

ric*_*ter 10

根节点是特殊的 - 它们不能从场景中取消,也不能移动到新的场景中.您需要将一个子节点或后代节点拉出levelScene您的游戏场景.例如:

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

或者全部移动:

for node in levelScene.rootNode.childNodes as [SCNNode] {
    scene.rootNode.addChildNode(node)
}
Run Code Online (Sandbox Code Playgroud)