我有一個SKScene,它有一個暫停方法。我希望能夠做這樣的事情:如何在Swift中從AppDelegate引用當前SKScene
func applicationWillTerminate(_ application: UIApplication) {
pauseLevel()
}
不過,我不知道怎麼去參考,我SKScene從AppDelegate中。
我嘗試使用
application.inputView
然而,這是一個UIView的。我怎樣才能得到SKScene?
編輯
deinit {
NotificationCenter.default.removeObserver(self)
}
override func didMove(to view: SKView) {
self.anchorPoint = CGPoint(x: 0.5, y: 0.5)
self.backgroundColor = UIColor(red:0.17, green:0.24, blue:0.31, alpha:1.0)
self.physicsWorld.gravity = CGVector(dx: 0, dy: 0)
NotificationCenter.default.addObserver(self, selector: #selector(runPause), name: .UIApplicationWillResignActive, object: nil)
}
那會是足夠的,有效的,在每次刪除觀察者?
不,它只會在場景從內存中刪除時將其刪除。如果場景停留在內存中但離開當前視圖,觀察者仍然存在。我不知道你的遊戲是如何設計的,你至少保護了自己的場景從內存中刪除,所以你的應用程序不會在退出時崩潰。 – Knight0fDragon