ゲームアプリにUnityAds(UnityMonetization)の導入を考えているのですが、リスナインターフェイス「IUnityAdsListener」を複数シーンで実装すると、そのコールバックである「OnUnityAdsDidFinish」の処理がバッティングしてしまいます。Unityのバージョンは2019.4.2f1、Advertisementのバージョンは3.4.7です。
たとえば、以下のようなコードをシーン①とシーン②で書いている場合…
public void OnUnityAdsDidFinish(string placementId, ShowResult showResult) { switch (showResult) { // 最後まで視聴 case ShowResult.Finished: Message.text = "報酬をGETしました"; break; // 途中まで視聴 case ShowResult.Skipped: Message.text = "スキップしましたね"; break; // 広告表示エラー case ShowResult.Failed: Message.text = "広告エラーです"; break; } }
各シーンを単体で見る分には問題ないのですが、シーンをまたいで(たとえばシーン①で動画広告を再生してからシーン②へ移動し、そこで動画広告を再生すると)
「MissingReferenceException: The object of type 'Text' has been destroyed but you are still trying to access it.」のエラーが発生します。エラー個所を調べると、互いのシーンのテキストオブジェクトを参照しに行って「見つからない」と言っているようなのです。(テキスト表示ではなくDebgu.Logで行うと、この問題は発生しません)
というわけで、シーンごとにOnUnityAdsDidFinishの処理を振り分ける方法はないでしょうか。SceneManager.GetActiveScene().nameを使ってシーン名で振り分ける方法を試しましたが、ダメでした。
わかりづらい質問で申し訳ないのですが、ご回答をいただけますと幸いです。
それでは、よろしくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー