c# - Unity ADS 对象引用未设置为对象错误的实例
问题描述
如图所示,第一次打开游戏时,广告来了,但我不希望它来。
当我点击照片中的“骷髅游戏对象”时,我希望广告出现,但我给出了一个错误,我无法修复错误,我也想要时间停止,但时间并没有停止。在第三张照片中,有 AdsScript 代码。
#1
#2
#3
public void GameoverPanel()
{
if (Time.timeScale == 1f)
{
gameoverPanel.SetActive(true);
AdsScript.instance.RequestInterstitial();
}
Time.timeScale = 0f;
}
public InterstitialAd interstitial;
void Start()
{
MobileAds.Initialize(App_ID => { });
//MobileAds.Initialize(App_ID);
RequestInterstitial();
}
public void RequestInterstitial()
{
// Initialize an InterstitialAd.
this.interstitial = new InterstitialAd(Interstitial_AD_ID);
AdRequest reguest = new AdRequest.Builder().Build();
this.interstitial.LoadAd(reguest);
GameOver();
}
public void GameOver()
{
if (this.interstitial.IsLoaded())
{
this.interstitial.Show();
}
}
解决方案
如果您想在开始时删除广告,请不要在方法中调用GameOver
方法,RequestInterstitial
而是在方法中调用它GameoverPanel
。如果您希望再次加载广告以在下次游戏结束时显示,您可能需要再次加载它,例如它应该是这样的:
public void GameoverPanel()
{
if (Time.timeScale == 1f)
{
gameoverPanel.SetActive(true);
GameOver();
RequestInterstitial();
}
Time.timeScale = 0f;
}
其次将 Adscript 设置为 public,然后将其拖放到检查器中(如果 ads 和 GameOverPanel 方法脚本在不同的类中)。
推荐阅读
- sql - 在表中包含“虚拟”列会使总查询时间加倍
- flutter - RangeError(索引):无效值:有效值范围为空:0(http请求)
- powershell - 如果设置了参数集中的参数之一,则需要所有参数
- php - 如何在 magento 2.3.3 中创建自定义标头
- kubernetes - 将数据库存储在 Kubernetes 持久卷中是否合适(以及如何备份?)
- awk - “&&”在 AWK 编码中实际上意味着 AND 吗?
- android - FileNotFoundException 的未知原因
- ios - (Swift) 防止应用在滑动时做任何事情
- jhipster - 更新实体时防止 JHipster import-jdl 覆盖更改
- javascript - scrollTop 的问题 - 30 秒应该持续,29 秒停留在一个地方