私のゲームがゲームオーバーシーンに移行するたびに、AdMobインタースティシャル広告を表示しようとしています。ただし、ビューコントローラのviewDidLoad()関数で初期化関数を使用すると、広告が表示されます。ゲームセンターに通知センターを設置し、GameOver Sceneに入ったら通知を送信して、広告を初期化する機能をトリガーしましたが、そのトリックはしませんでした。私は、ビューコントロールのviewDidLoad関数にそれを置くのは、アプリケーションの起動時にただちに表示するのではなく、いつでもシーンからトリガーできる方法が不思議でした。私GameViewControllerでSpriteKitのAdMobインタースティシャル広告
は、これら2つの機能である:ここでは
public func initAdMobInterstitial() {
adMobInterstitial = GADInterstitial(adUnitID: AD_MOB_INTERSTITIAL_UNIT_ID)
adMobInterstitial.delegate = self
let request = GADRequest()
request.testDevices = ["ddee708242e437178e994671490c1833"]
adMobInterstitial.load(request)
}
func interstitialDidReceiveAd(_ ad: GADInterstitial) {
ad.present(fromRootViewController: self)
}
私はそれがコメント解除されたときしかし広告がポップアップし、正常に動作し、initAdMobInterstitialをコメントアウトしています。このポップアップは、アプリが初めて起動するとすぐに表示されます。
override func viewDidLoad() {
super.viewDidLoad()
//initAdMobInterstitial()
initAdMobBanner()
NotificationCenter.default.addObserver(self, selector: #selector(self.handle(notification:)), name: NSNotification.Name(rawValue: socialNotificationName), object: nil)
let scene = Scene_MainMenu(size: CGSize(width: 1024, height: 768))
let skView = self.view as! SKView
skView.isMultipleTouchEnabled = true
skView.ignoresSiblingOrder = true
scene.scaleMode = .aspectFill
_ = SGResolution(screenSize: view.bounds.size, canvasSize: scene.size)
skView.presentScene(scene)
}
ここで、GameOverというタイトルの私のシーンの1つで、私は広告をポップアップしたい。私は場面が提示されるたびに出てくるので、プレイヤーが敗北してゲームをぶつけるたびに出てきたい。あなたは私のビューコントローラクラスで見ることができます通知センターを使用して、
override func didMove(to view: SKView) {
self.sendNotification(named: "interNotif")
は}この機能によって
...、もで見つかった...私は通知を送信しようとした、それが処理されていますView Controllerクラスのノートとしても
func handle(notification: Notification) {
if (notification.name == NSNotification.Name(rawValue: interstitialNotificationName)) {
initAdMobInterstitial()
}
}
は、私のビューコントローラに私が送られた通知を一致させるために、文字列「interNotif」に等しいinterstitialNotificationName宣言しています。
あなたのコードを共有してください。 – Evana