我有以下代码:
func laser() {
let scene: SKScene = SKScene(fileNamed: "Laser")!
let laser = scene.childNode(withName: "laser")
let waitAction: SKAction = SKAction.wait(forDuration: 0.0001)
let removeAction: SKAction = SKAction.removeFromParent()
laser?.run(SKAction.sequence([waitAction,removeAction]))
}
但是似乎节点并没有因为不断增加而被从内存中删除。如果您知道为什么未执行SKAction.wait
或SKAction.removeFromParent()
的任何事情?
非常感谢您的帮助。
答案 0 :(得分:0)
let scene: SKScene = SKScene(fileNamed: "Laser")!
这意味着您正在加载新场景,而不是使用当前场景。
因此,您正在加载一个新场景,将动作从该场景放到激光器上,然后保留该功能。
离开函数后,场景将被破坏,并浪费了CPU周期。
不确定在哪里执行此代码,但是您需要进入实际使用的场景。