我正在编写脚本,其中将gamesene.swift中的变量附加到gamecene.sks中的子画面。我以前已经做过,但是现在我收到了一个我不明白的错误。
我不知道在这里做什么,所以请发送帮助。
var p = SKSpriteNode() // this is the declaration
下面在didMoveTo()
中 p.name = "p"
p = self.childNode(withName: "p") as! SKSpriteNode
错误是:
Fatal error: Unexpectedly found nil while unwrapping an Optional value
2019-06-25 12:50:45.259190-0700 Select[25918:1085668] Fatal error: Unexpectedly found nil while unwrapping an Optional value
(lldb)
*****我发现该脚本中没有错误,我的GameViewController中有奇怪的声明
答案 0 :(得分:0)
您的代码崩溃了,因为场景中没有名称为p
且是子画面节点的子节点。没有更多信息,就无法知道为什么场景中没有子节点p
。
如果要将代码中的Sprite值设置为SKS文件中的Sprite,请确保提供给self.childName
的名称与SKS文件中Sprite的名称匹配。
p = self.childNode(withName: "SpriteNameInSKSFile") as! SKSpriteNode
如果要在代码中构建精灵,请调用addChild
函数以将精灵添加为场景的子代。
self.addChild(p)
通过这种方式,您应该使用比p
更具描述性的变量名。