Unity Ads Android集成 - 重新加载视频广告问题

时间:2016-04-19 07:43:58

标签: java android unity3d ads

我已将Unity Ads android库集成到我的android项目中。一开始,在调用init

之后
UnityAds.init(this, Consts.UNITY_GAME_ID, this);
调用我的回调的onFetchCompleted方法,我可以显示视频并获得有关我的活动完成的回调。

我想在完成后重新加载视频并寻找类似" reload"," fetch" UnityAds类上的等等。似乎没有办法做到这一点。

所以,我试图再次调用UnityAds.init,但无法在日志中获得任何回调或任何错误。

如何重新加载其他视频广告?

1 个答案:

答案 0 :(得分:0)

<强> 1 即可。你不要两次调用init。

<强> 2 即可。在调用isReady函数之前,您可能没有使用Advertisement.Show()来检查广告是否已被阅读。

直接从Unity网站

复制,以下代码应显示广告并等待要展示其他广告,只需再次致电ShowAd()

[SerializeField] string gameID = "33675";

void Awake()
{
    Advertisement.Initialize (gameID, true);
}

void Start()
{
    ShowAd();//Show ad
}

public void ShowAd(string zone = "")
{
    #if UNITY_EDITOR
        StartCoroutine(WaitForAd ());
    #endif

    if (string.Equals (zone, ""))
        zone = null;

    ShowOptions options = new ShowOptions ();
    options.resultCallback = AdCallbackhandler;

    if (Advertisement.isReady (zone))
        Advertisement.Show (zone, options);
}

void AdCallbackhandler (ShowResult result)
{
    switch(result)
    {
    case ShowResult.Finished:
        Debug.Log ("Ad Finished. Rewarding player...");
        break;
    case ShowResult.Skipped:
        Debug.Log ("Ad skipped. Son, I am dissapointed in you");
        break;
    case ShowResult.Failed:
        Debug.Log("I swear this has never happened to me before");
        break;
    }
}

IEnumerator WaitForAd()
{
    float currentTimeScale = Time.timeScale;
    Time.timeScale = 0f;
    yield return null;

    while (Advertisement.isShowing)
        yield return null;

    Time.timeScale = currentTimeScale;
}