У меня есть два пустых объекта scnscene без каких-либо узлов и камер:
func setupScenes() {
scnView = SCNView(frame: self.view.frame)
self.view.addSubview(scnView)
gameScene = SCNScene(named: "/MrPig.scnassets/GameScene.scn")
splashScene = SCNScene(named: "/MrPig.scnassets/SplashScene.scn")
scnView.scene = splashScene
}
Два метода отображения каждого scnscene:
func startSplash() {
gameScene.isPaused = true
let transition = SKTransition.doorsOpenVertical(withDuration: 1.0)
scnView.present(splashScene, with: transition, incomingPointOfView: nil, completionHandler: {
self.gameState = .tapToPlay
self.setupSounds()
self.splashScene.isPaused = false
})
}
func startGame() {
splashScene.isPaused = true
let transition = SKTransition.doorsOpenVertical(withDuration: 1.0)
scnView.present(gameScene, with: transition, incomingPointOfView: nil, completionHandler: {
self.gameState = .playing
self.setupSounds()
self.gameScene.isPaused = false
})
}
И сенсорный жест для переключения между сценами:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if gameState == .tapToPlay {
startGame()
} else {
startSplash()
}
}
Каждый раз, когда я касаюсь экрана, на экране появляется первая или вторая сцена, и я использую плюс ~ 80 МБ ОЗУ.После 10 раз касаясь 500 МБ оперативной памяти уже используется.
Я не понимаю, почему это происходит?