2016-11-03 6 views
1

スプライトキットで報酬を与えられた動画広告を作成しようとしています。私はGameScene.swiftクラスに報酬を与えたビデオを追加したいが、これはViewControllerではなくSKSceneではないという問題がある。SKSceneのAdMobリワード動画

GameScene.swiftViewControllerではないので、これは動作しません:

ad.present(fromRootViewController: self) 

私は多くのことを試してみたが、何も働きました。誰かが私を助けることができますか? ありがとう!

(私は、プレイヤーが死ぬと、この報わ広告を表示したい。)あなたのGameViewController、セットアップで

+0

GameViewControllerから提示する必要があります。通知を使用してSKSceneにGameViewControllerにビデオ広告を開始するように指示します – Nik

+0

@Nik GameViewControllerで関数を作成しようとしましたが、GameSceneで関数を呼び出そうとしましたが、これは機能しませんでした。それは私にそれが関数を呼び出さなければならなかったとき、同じエラーを与えました。 –

+0

通知を使用してシーンとView Controller間の通信を行います。できるだけ早く回答をします – Nik

答えて

1

viewWillLayoutSubviewsでオブザーバー:この場合

override func viewWillLayoutSubviews() { 

    NotificationCenter.default.addObserver(self, selector: #selector(self.startVideoAd), name: NSNotification.Name(rawValue: "showVideoRewardAd"), object: nil) 

} 

func startVideoAd() { 

// Do something - play video ad 

} 

、この通知が呼び出されるたびに、機能 startVideoAdの中で実行されます。明らかに、実行したい関数の名前に名前を変更したいと思うでしょう。その後

、あなたのGameSceneに、通知を送信するために、あなたがこれを実行します/あなたがGameViewController内で機能を実行したい時はいつでもどこでも:

NotificationCenter.default.post(name: NSNotification.Name(rawValue: "showVideoRewardAd"), object: nil) 

は、この情報がお役に立てば幸い!

関連する問題