如何显示插页式AdMob在Unity中每增加3个人死亡?

时间:2019-11-03 20:40:37

标签: c# unity3d admob

我的插页式AdMob广告使用以下脚本:

public class Interstitialadscript : MonoBehaviour
{

    private InterstitialAd interstitial;

    void Start()
    {
        string appId = "ca-app-pub-3940256099942544~3347511713";

        MobileAds.Initialize(appId);
    }

    public void ShowInterstitial()
    {

         RequestInterstitial();


    }

    private void RequestInterstitial()
    {
        string interstitialId = "ca-app-pub-3940256099942544/1033173712";

        if (interstitial != null)
            interstitial.Destroy();
        interstitial = new InterstitialAd(interstitialId);
        interstitial.OnAdLoaded += HandleOnAdLoaded;

        interstitial.LoadAd(CreateNewRequest());
    }

    public void HandleOnAdLoaded(object sender, EventArgs args)
    {
        if (interstitial.IsLoaded())
            interstitial.Show();
    }


    private AdRequest CreateNewRequest()
    {
        return new AdRequest.Builder().Build();
    }
}

编辑:

我尝试过的是这个(在场景中附加到游戏的脚本中)

public class loadcounter : MonoBehaviour
{

public static int loadcount=0;
public Interstitialadscript script;

void Start()
{
loadcount++;
if(loadcount % 3 ==0)
   script.ShowInterstitial();
}

第三次加载屏幕游戏时,出现NullReference错误作为调试日志。

如果有人对如何以及何时加载非页内广告有不同的想法,请随时提出建议。


我要实现的是,当otherscript.deathcounter == 3时如何显示广告?

到目前为止,我尝试的是在另一个脚本中调用ShowInterstitial()函数,一旦条件被满足,该脚本就会计算死亡人数,但是我唯一得到的就是Nul​​lRefference错误。

谢谢。

1 个答案:

答案 0 :(得分:0)

没有其他脚本,我们只能猜测问题所在。

但是我的猜测是您的脚本不是静态的。我也有同样的问题。

我通过使用deathCount变量使其他脚本静态化来修复它。在广告管理器脚本中,我将bool设置为deathCount达到所需的数量,然后放入showInterstitial();解决了我的问题。