编程问题。滞后

时间:2015-10-28 02:59:07

标签: c# unity3d

我一直遇到一些与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();
        }
    }
}

2 个答案:

答案 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函数它将是第三个可能的滞后问题