我有带有相机设置的 SCNScene 子类,我想在所有子类中使用它。
let scene01 = TheSubclassScene()
let scene02 = TheSubclassScene(named:"art.scnassets/testScene.scn")!
self.sceneArray.addObject(scene01)
self.sceneArray.addObject(scene02)
我想在运行时更改场景。当我在代码中创建场景但不使用 SceneKit 编辑器中的场景时,此方法有效。所以scene01
正在工作但是scene02
不是。在调试器中我可以看到数组中的两个场景。一个是 SCNSceneSubclass 类型,另一个是 SCNScene 类型。
有什么方法可以让它发挥作用吗?
更新:
这是我的场景子类
class TheSubclassScene: SCNScene
{
let cameraNode = CameraNode()
override init()
{
super.init()
self.rootNode.addChildNode(self.cameraNode)
}
required init?(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder)
}
}
我有一个解决该问题的方法。不太好,但它有效。我实例化一个SCNScene(named: "art.scnassets/testScene.scn")
然后我实例化一个TheSubclassScene()
我克隆场景的 rootNode 并将其作为子节点添加到子类场景中。
let testScene = SCNScene(named:"art.scnassets/testScene.scn")!
let subclassScene = TheSubclassScene()
subclassScene.rootNode.addChildNode(testScene.rootNode.clone())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)