繁体   English   中英

更改场景后Unity Admob奖励的视频侦听器无法正常工作

[英]Unity Admob Rewarded Video Listeners Not Working after changing Scene

这个问题最近困扰着我,以前从未注意到过,显然,我在Unity3D项目中使用了admob奖励视频。

在“我的项目”中,我会在级别失败时奖励用户,当用户观看奖励视频时,会向用户奖励并自动将场景更改自动级别选择。 当用户再次开始玩游戏并再次失败时,观看视频,但是什么也没有发生。

经过一些调试后,我发现第二次加载游戏场景时听众无法正常工作。

我有一个GamePlayManager脚本,我在其中执行所有功能。

public class GamePlayManager : MonoBehaviour {
private RewardBasedVideoAd rewardBasedVideoAd;

void Start()
{
rewardBasedVideoAd = RewardBasedVideoAd.Instance;
        RequestRewardBasedVideo ();

        rewardBasedVideoAd.OnAdFailedToLoad += HandleRewardBasedVideoFailedToLoad;
        // has rewarded the user.
        rewardBasedVideoAd.OnAdRewarded += HandleRewardBasedVideoRewarded;
}

private void RequestRewardBasedVideo()
    {

        #if UNITY_ANDROID
        string adUnitId = GameConstants.AdmobRewardedVideoID;
        #elif UNITY_IPHONE
        string adUnitId = GameConstants.AdmobIOSRewardedVideoID;
        #else
        string adUnitId = "unexpected_platform";
        #endif

        AdRequest request = new AdRequest.Builder().Build();
        rewardBasedVideoAd.LoadAd(request, adUnitId);
    }

    public void showAdmobRewardedVideo()
    {
        if (rewardBasedVideoAd.IsLoaded())
        {
            rewardBasedVideoAd.Show();
        }
    }

    public void HandleRewardBasedVideoRewarded(object sender, Reward args)
    {

        Debug.Log ("Unity AdmobRewardGiven");

        nextLevel ();
        gotoLevelSelection ();

    }


    public void HandleRewardBasedVideoFailedToLoad(object sender, AdFailedToLoadEventArgs args)
    {
        Debug.Log ("Admob RewardedVideo FailedToLoad");
    }
}

加载新场景时, GamePlayManager被销毁。 您有两种选择:

1,添加 DontDestroyOnLoad(gameObject); 到“ Start功能,以便在加载新场景时不会破坏GamePlayManager脚本。

2。使用-=取消订阅OnDestroy函数中的事件,就像使用+=订阅一样。 我没有看到Admob示例这样做,但是您应该始终取消订阅活动。

public void OnDestroy()
{
    rewardBasedVideoAd.OnAdFailedToLoad -= HandleRewardBasedVideoFailedToLoad;

    rewardBasedVideoAd.OnAdRewarded -= HandleRewardBasedVideoRewarded;
}

这些中的任何一个都可以解决您的问题。 如果一个失败,则使用另一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM