在SpriteKit SWIFT中获取SKReferenceNode的子节点

时间:2016-08-07 19:35:33

标签: swift sprite-kit skspritenode xcode8-beta2 skreferencenode

我在一个SKSpriteNode(名称:square)和一个SKLabel(name:label)中创建一个场景Case.sks(使用Level Editor)。 在我的主场景GameScene.sks中,我使用带有“Case”的SKReferenceNode作为参考。

我需要从主场景中访问“square”精灵。

我的第一个想法是直接调用子节点:

 let firstSquare = childNode(withName: "square") as! SKSpriteNode

但我得到了:

 Fatal error: unexpectedly found nil while unwrapping an Optional value

所以我试过了:

 let caseRef = childNode(withName: "Case") as! SKReferenceNode
 let firstSquare = caseRef.childNode(withName: "square") as! SKSpriteNode

但我上了第一条广场线:

 Fatal error: unexpectedly found nil while unwrapping an Optional value

如何获取参考场景的子节点?

1 个答案:

答案 0 :(得分:9)

尝试使用以下代码调用它:

override func sceneDidLoad() {
     if let sprite = self.childNode(withName: "//square") as? SKSpriteNode {
           // do whatever you want with the sprite
     }
     ...
}