アプリケーション内のシーンにバナービューを統合しましたが、別のシーンにインタースティシャル広告を組み込むことができません。 輸入SpriteKitベース インポートGameKit 輸入GoogleMobileAdsGameViewControllerにリンクしているゲームオーバーレイにインタースティシャル広告を表示しますか?
class GameOverMenu: SKScene, GKGameCenterControllerDelegate, UIAlertViewDelegate {
var viewController: GameViewController!
var interstitial: GADInterstitial!
var myTimer = Timer()
override func didMove(to view: SKView) {
createAndLoadInterstitial()
startMyTimer()
}
func createAndLoadInterstitial() {
interstitial = GADInterstitial(adUnitID: "...")
let request = GADRequest()
request.testDevices = [ kGADSimulatorID, "..." ]
interstitial.load(request)
}
func startMyTimer() {
myTimer = Timer.scheduledTimer(timeInterval: 4, target: self, selector: #selector(GameOverMenu.myFunction), userInfo: nil, repeats: false)
}
func myFunction(){
if interstitial.isReady {
interstitial.present(fromRootViewController: viewController)
} else {
print("Ad wasn't ready")
}
}
それがでロードしようとするとき、それが失敗している「致命的なエラー:予期せずにオプションの値をアンラップしながら、nilを見つけ、」 は、ここに私のコードです。この問題は、コードが次のように表示され、アプリケーションの起動時にGameOverシーンが読み込まれるように、問題が発生します。これをどうすれば解決できますか?
if let view = self.view as! SKView? {
// Load the SKScene from 'MainMenu.sks'
if let scene = MainMenuScene(fileNamed: "MainMenu") {
scene.viewController = self
// Set the scale mode to scale to fit the window
scene.scaleMode = .aspectFill
// Present the scene
view.presentScene(scene)
}
if let scene3 = GameOverMenu(fileNamed: "GameOver") {
scene3.viewController = self
// Set the scale mode to scale to fit the window
scene3.scaleMode = .aspectFill
view.presentScene(scene3)
}