2017-04-04 85 views
1

我在我的android/iOS游戏中使用基于统一奖励的广告。但是当我检查Advertisement.IsReady (rewardVideoID);Unity广告不会自动启动?

总是返回false。

另外,如果检查中清醒团结广告初始化为假

void Awake() 
{ 
    Debug.Log ("Unity ads ini state : " + Advertisement.isInitialized); //it is false everytime 
} 

但我所以在这里启用了统一编辑器的广告,我想知道为什么统一广告是不会自动初始化。我在之前的项目中使用了统一广告,它正在自动进行初始化。

回答

0

在检查Advertisement.isInitializedAdvertisement.IsReady之前,您必须致电Advertisement.Initialize

不仅如此。当您致电Advertisement.Initialize时,不能保证它会立即初始化。这就是为什么您必须在协同功能中执行此检查,以便您可以连续检查它,直到它初始化。

一个例子来自Unity's Ads Doc

IEnumerator Start() 
{ 
!UNITY_ADS // If the Ads service is not enabled... 
    if (Advertisement.isSupported) 
    { // If runtime platform is supported... 
     Advertisement.Initialize(gameId, enableTestMode); // ...initialize. 
    } 
if 

    // Wait until Unity Ads is initialized, 
    // and the default ad placement is ready. 
    while (!Advertisement.isInitialized || !Advertisement.IsReady()) 
    { 
     yield return new WaitForSeconds(0.5f); 
    } 

    // Show the default ad placement. 
    Advertisement.Show(); 
} 
+0

但根据统一团结的最新版本并不需要手动初始化 –

+0

你不,如果你使用的是带有在编辑器中启用自动初始化UnityAds。我的回答的目的是告诉你,“Advertisement.isInitialized”和“Advertisement.IsReady”不一定是立即成立的。你必须经常在'Update'函数中检查它们,或者使用协程和'while'循环。 – Programmer