我试图在iOS 9.0中使用新的SKCameraNode,但我遇到相机总是为containsNode()返回false,为containsNodeSet()返回一个空集。
为了测试,我使用SpriteKit模板创建了一个空项目并添加了一个摄像头。我唯一改变的是GameScene:
class GameScene: SKScene {
let myLabel = SKLabelNode(fontNamed:"Chalkduster")
override func didMoveToView(view: SKView) {
/ Setup your scene here */
myLabel.text = "Hello, World!";
myLabel.fontSize = 65;
myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame));
let camera = SKCameraNode()
camera.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame))
self.addChild(camera)
self.addChild(myLabel)
self.camera = camera
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
/ Called when a touch begins */
for touch in touches {
let location = touch.locationInNode(self)
print(camera!.containsNode(myLabel))
print(camera!.containedNodeSet())
}
}
override func update(currentTime: CFTimeInterval) {
/ Called before each frame is rendered */
}
}
日志中的输出是:
false
[]
它不应该在集合中返回true和myLabel,因为它是场景中的一个节点(并且清晰可见)? 有什么我做错了吗?任何帮助表示赞赏!
就在有人说模拟器不准确之前,我在iPad mini 2上运行它。:P
答案 0 :(得分:0)
这似乎是一个错误,Apple已经在iOS 9 beta 3中认出了它。我将编辑我的回答以确认它是否有效。
编辑:它有效!更新您的开发设备,它应该可以工作。