首页 > 解决方案 > Unity ADS 对象引用未设置为对象错误的实例

问题描述

  1. 如图所示,第一次打开游戏时,广告来了,但我不希望它来。

  2. 当我点击照片中的“骷髅游戏对象”时,我希望广告出现,但我给出了一个错误,我无法修复错误,我也想要时间停止,但时间并没有停止。在第三张照片中,有 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();
        }
}

标签: c#unity3d

解决方案


如果您想在开始时删除广告,请不要在方法中调用GameOver方法,RequestInterstitial而是在方法中调用它GameoverPanel。如果您希望再次加载广告以在下次游戏结束时显示,您可能需要再次加载它,例如它应该是这样的:

public void GameoverPanel()
{
    if (Time.timeScale == 1f)
    {
        gameoverPanel.SetActive(true);
        GameOver();
        RequestInterstitial();
    }
    Time.timeScale = 0f;

}

其次将 Adscript 设置为 public,然后将其拖放到检查器中(如果 ads 和 GameOverPanel 方法脚本在不同的类中)。


推荐阅读