Unity-我在基于admob奖励的视频广告上获得了重复的奖励

时间:2020-05-09 19:50:13

标签: unity3d admob rewardedvideoad admob-rewardedvideoad

因此,我在Unity项目中添加了基于奖励的广告,我希望奖励300个观看广告的用户,但每次都能获得重复的奖励。我想我知道问题出在哪里,但我解决不了!

我有这个开始功能,还有一个可以在我的广告脚本中获得奖励的功能:

    void Start()
{
    this.rewardBasedVideoAd = RewardBasedVideoAd.Instance;
    rewardBasedVideoAd.OnAdLoaded += HandleOnAdLoaded;
    rewardBasedVideoAd.OnAdOpening += HandleOnAdOpening;
    rewardBasedVideoAd.OnAdClosed += HandleOnAdClosed;
    rewardBasedVideoAd.OnAdRewarded += HandleOnAdRewarded;
    MobileAds.Initialize(initStatus => { });
    this.LoadRewardBasedAd();
}

public void HandleOnAdRewarded(object sender, Reward args)
{
    PlayerPrefs.SetInt("coins", PlayerPrefs.GetInt("coins") + 300);   

}

当您在游戏中死亡并想重新开始时,我叫SceneManager.LoadScene(0);,这是我获得的唯一场景!我认为当我加载场景时,开始功能再次运行并添加了另一个奖励rewardBasedVideoAd.OnAdRewarded += HandleOnAdRewarded;。我曾尝试在不同的时间多次致电rewardBasedVideoAd.OnAdRewarded -= HandleOnAdRewarded;,但并不能解决问题。

如果我连续 n 次重启游戏,当我观看广告时,我将获得 n 次奖励! 有人能帮我吗?预先谢谢你!

2 个答案:

答案 0 :(得分:1)

请确保您要在整个游戏中只保留一个GameObject实例。

我会为此游戏对象致电DontDestroyOnLoad

我认为您需要调整“开始”功能,您需要在进行操作之前查看是否已在场景中找到此类对象(只需使用特定标签标记该GameObject并在开始时查找带有该标记的对象功能)。 (以下是我上面所附的Unity文档中的示例。DontDestroy.cs是您所需要的)

答案 1 :(得分:0)

只需添加OnDestroy函数并取消订阅事件即可。就是这样。