SKCameraNode函数containsNode()和containedNodeSet()未按预期工作

时间:2015-07-07 17:15:38

标签: ios swift sknode

我试图在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

1 个答案:

答案 0 :(得分:0)

这似乎是一个错误,Apple已经在iOS 9 beta 3中认出了它。我将编辑我的回答以确认它是否有效。

编辑:它有效!更新您的开发设备,它应该可以工作。