【发布时间】:2020-01-10 01:12:55
【问题描述】:
我正在开发一款 Android 游戏,我想将 AdMob 广告添加到我的游戏中。我添加了横幅和插页式视图,但 RewardBasedVideoAd 中的问题特别是 OnAdRewarded 事件,当用户关闭视频时返回游戏以立即获得奖励游戏崩溃。
经过多次尝试,我发现导致游戏崩溃的代码gameObject.SetActive(true)和gameObject.SetActive(false)是问题所在,当我停用游戏面板UI和激活奖励面板UI时游戏立即崩溃。
我该如何解决?为什么我使用 gameObject.SetActive 时游戏会崩溃?
导致应用崩溃的代码
public void HandleOnAdRewarded(object sender, EventArgs args)
{
gamePanel.SetActive(false);
rewardPanel.SetActive(true);
}
申请奖励码
public void RequestReward()
{
AdRequest request = new AdRequest().Builder().Build();
this.rewardAd.LoadAd(request, rewardAdId);
rewardAd.OnAdLoaded += this.HandleOnRewardAdLoaded;
rewardAd.OnAdRewarded += this.HandleOnAdRewarded;
rewardAd.OnAdClosed += this.HandleOnRewardAdClosed;
}
处理程序
public void HandleOnRewardAdLoaded(object sender, EventArgs args)
{
if(rewardAd.IsLoaded())
{
rewardAd.Show();
}
}
public void HandleOnAdRewarded(object sender, EventArgs args)
{
gamePanel.SetActive(false);
rewardPanel.SetActive(true);
}
public HandleOnRewardAdClosed(object sender, EventArgs args)
{
rewardAd.OnAdLoaded -= this.HandleOnRewardAdLoaded;
rewardAd.OnAdRewarded -= this.HandleOnAdRewarded;
rewardAd.OnAdClosed -= this.HandleOnRewardAdClosed;
}
【问题讨论】: