首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >团结-我在admob奖励视频广告上得到了重复的奖励

团结-我在admob奖励视频广告上得到了重复的奖励
EN

Stack Overflow用户
提问于 2020-05-09 19:50:13
回答 2查看 439关注 0票数 0

因此,我增加了一个基于我的团结项目的广告奖励,我想奖励用户300枚硬币,因为我看了一个广告,但我得到重复的奖励每次。我想我知道问题在哪里,但我解决不了!

我有这个开始函数和一个在我的广告脚本上获得奖励的函数:

代码语言:javascript
复制
    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);,这是我唯一得到的场景!我想当我加载场景时,Start函数再次运行,并添加了另一个奖励rewardBasedVideoAd.OnAdRewarded += HandleOnAdRewarded;。我已经尝试过多次和不同的时候给rewardBasedVideoAd.OnAdRewarded -= HandleOnAdRewarded;打电话,但是它并没有解决这个问题。

如果我连续重启游戏n次数,当我看广告时,我会得到奖励n倍!有人能帮我吗?提前谢谢你!

EN

回答 2

Stack Overflow用户

发布于 2020-05-10 11:30:49

非常确定的是,您希望在整个游戏中只保留这个GameObject的一个实例。

我会为这个DontDestroyOnLoad打电话给GameObject。

我认为您将需要调整您的开始函数,您需要在执行操作之前查看场景中是否已经有这样的对象(只需使用特定的标记标记这个GameObject,并在开始函数中查找带有该标记的对象)。(请遵循上面所附的Unity中的示例。DontDestroy.cs是你需要的)

票数 1
EN

Stack Overflow用户

发布于 2020-07-02 09:55:46

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61702791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档