我一直遇到一些与c#统一编程的问题。我正在尝试在开始游戏时请求插页式AD,以便在玩家死亡5次时能够显示它。问题是,当我到达第五次死亡时,广告不会显示出来。当我在等级开始时尝试请求广告时,它会变得迟钝而且仍然无法显示。
这是我的代码。看来是对的。
void Update(){
if (clicks >= 5) {
RequestInterstitial();
Debug.Log("Got 5 clicks");
if (interstitial.IsLoaded()){
Debug.Log("interstitial loaded");
interstitial.Show();
clicks = 0;
}
}
}
编辑:修改我的代码后,我现在收到错误:
NullReferenceException:对象引用未设置为对象的实例ADS.ADMobsGameplay.Update()(在Assets / Scripts / ADS / ADMobsGameplay.cs:28)
第28行对应于以下代码中的if (interstitial.IsLoaded()){
:
void Update(){
if (clicks >= 5) {
Debug.Log("Got 5 clicks");
if (interstitial.IsLoaded()){
Debug.Log("interstitial loaded");
interstitial.Show();
clicks = 0;
}else{
RequestInterstitial();
}
}
}
答案 0 :(得分:2)
您正在反复请求插页式广告。只需在程序开头运行RequestInterstitial
方法(并确保它只运行一次方法)。
然后,无论以何种方式增加点击次数,只需在此结尾添加类似内容:
int clicksRequired = 5;
int currentClicksRequired = 5;
if(clicks > currentClicksRequired){
Debug.Log("Got 5 Clicks");
if (interstitial.IsLoaded()){
Debug.Log("interstitial loaded");
interstitial.Show();
RequestInterstitial();
clicks = 0;
currentClicksRequired = clicksRequired;
}else{
Debug.Log("interstitial not loaded, skipping to next click");
currentClickRequired ++;
}
}
点击次数达到5后,它会检查是否已加载插页式广告。如果是,则会显示插页式广告,请求其他插页式广告,将点击次数重置为0,然后继续。如果尚未加载插页式广告,则会让您等到第6次点击或第7次点击等,直到插入插页式广告。
答案 1 :(得分:1)
首先,你在你的评论中显示了NullReferenceException错误:这是第一个可以提供滞后的问题。第二 - 将一些计数逻辑放入更新功能真的很奇怪 - 更新每一帧都有效 - 因此它是第二个可能的滞后问题。第三个Debug.Log函数不是轻量级的,进入Update函数它将是第三个可能的滞后问题