我的插页式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()函数,一旦条件被满足,该脚本就会计算死亡人数,但是我唯一得到的就是NullRefference错误。
谢谢。
答案 0 :(得分:0)
没有其他脚本,我们只能猜测问题所在。
但是我的猜测是您的脚本不是静态的。我也有同样的问题。
我通过使用deathCount变量使其他脚本静态化来修复它。在广告管理器脚本中,我将bool设置为deathCount达到所需的数量,然后放入showInterstitial();解决了我的问题。