我在一个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
如何获取参考场景的子节点?
答案 0 :(得分:9)
尝试使用以下代码调用它:
override func sceneDidLoad() {
if let sprite = self.childNode(withName: "//square") as? SKSpriteNode {
// do whatever you want with the sprite
}
...
}