所以我正在开展一个需要使用两个或更多不同摄像机节点的项目。问题是,当我要求激活和使用第二个摄像机节点时,我收到信号SIGABRT错误。我想我明白为什么会出现这个错误,因为已经存在一个活动的摄像机节点。但是,我的问题是我是否可以在一个场景中,在不同时间和不同位置使用两个摄像机节点。感谢您的任何帮助!
答案 0 :(得分:3)
是的,你可以:
class GameScene: SKScene {
let cam1 = SKCameraNode()
let cam2 = SKCameraNode()
override func didMove(to view: SKView) {
addChild(cam1)
addChild(cam2)
addChild(SKSpriteNode(color: .blue, size: CGSize(width: 50, height: 50)))
cam1.position.x -= 100
cam2.position.x += 100
camera = cam1
}
func swapCam() {
guard let cam = self.camera else { fatalError() }
if cam === cam1 {
camera = cam2
} else if cam === cam2 {
camera = cam1
} else { fatalError() }
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
swapCam()
}
}
从左侧cam1到右侧cam2点击屏幕跳跃,改变了内置&#34; hello world&#34;和我添加的蓝色方块。
您的问题与SKS文件有关(可能名称错误?),或者将!
放在SKCameraNode的末尾(不知道为什么会这样)。