在我的SpriteKit应用程序中我有3个不同的场景,我想为每个场景设置一个特定的设置。 我的意思是我希望在MainPage和SomeInfoScene中设置可见的AdBanner,但在GameScene中则不能。我怎样才能做到这一点? 这是我的代码:
override func viewDidLoad() {
super.viewDidLoad()
if let view = self.view as! SKView? {
let mainPage = SKScene(fileNamed: "MainPage")!
mainPage.name = "MainPage"
let someInfoPage = SKScene(fileNamed: "SomeInfoScene")!
someInfoPage.name = "SomeInfoScene"
let gameScene = SKScene(fileNamed: "GameScene")!
gameScene.name = "GameScene"
view.presentScene(mainPage)
if let currentScene = view.scene {
if currentScene.name == mainPage.name {
print("MainPage")
adBannerView.isHidden = false
}
if currentScene.name == someInfoPage.name {
print("SomeInfoScene")
adBannerView.isHidden = false
}
if currentScene.name == gameScene.name {
print("GameScene")
adBannerView.isHidden = true
}
}
}
}
答案 0 :(得分:2)
if let view = self.view as? SKView {
if let currentScene = view.scene {
print("Current scene is: \(currentScene)")
else {
print("Current scene is nil")
}
}
顺便说一下,你的第一行真的应该是:
if let view = self.view as? SKView { ...
这是在if
声明中尝试向下转换的标准/惯用方法。
<强>更新即可。如果您计划在游戏代码中使用name
属性(在代码中直接在*.sks
文件或中),则还需要设置API of Keras属性。例如:
let scene = SKScene(fileNamed: "MainPage")!
scene.name = "MainPage"
view.presentScene(scene)