我已将Unity Ads android库集成到我的android项目中。一开始,在调用init
之后UnityAds.init(this, Consts.UNITY_GAME_ID, this);
调用我的回调的onFetchCompleted方法,我可以显示视频并获得有关我的活动完成的回调。
我想在完成后重新加载视频并寻找类似" reload"," fetch" UnityAds类上的等等。似乎没有办法做到这一点。
所以,我试图再次调用UnityAds.init,但无法在日志中获得任何回调或任何错误。
如何重新加载其他视频广告?
答案 0 :(得分:0)
<强> 1 即可。你不要两次调用init。
<强> 2 即可。在调用isReady
函数之前,您可能没有使用Advertisement.Show()
来检查广告是否已被阅读。
复制,以下代码应显示广告并等待要展示其他广告,只需再次致电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;
}