2016-11-13 13 views
0

Почему не мой AdMob баннер шкурой, когда я иду на следующую сцену под названием «» Main «»? Я сделал все, что сказали, что другие люди на других нитях ..Unity - Admob скрыть баннер не работает

Это мой код:

using GoogleMobileAds.Api; 

public class AdmobAds : MonoBehaviour { 

private BannerView bannerView; 


    private void RequestBanner() 
    { 
     #if UNITY_ANDROID 
     string adUnitId = "ca-app-pub-xxxxxxxxxxxxxxxxxx"; 
     #elif UNITY_IPHONE 
     string adUnitId = "INSERT_IOS_BANNER_AD_UNIT_ID_HERE"; 
     #else 
     string adUnitId = "unexpected_platform"; 
     #endif 

     // Create a 320x50 banner at the top of the screen. 
     BannerView bannerView = new BannerView(adUnitId, AdSize.SmartBanner, AdPosition.Bottom); 
     // Create an empty ad request. 
     AdRequest request = new AdRequest.Builder().Build(); 
     // Load the banner with the request. 
     bannerView.LoadAd(request); 
    } 

    public void HideAd() 
    { 
     bannerView.Destroy(); 
     bannerView.Hide(); 
    } 

    void Start() 
    { 
     Scene currentScene = SceneManager.GetActiveScene(); 
     string sceneName = currentScene.name; 

     if (sceneName == "Menu") 
     { 
      RequestBanner(); 
     } 

     else if (sceneName == "Main") 
     { 
      bannerView.Destroy(); 
      bannerView.Hide(); 
     } 
    } 
} 

Также «» общественного недействительного HideAd «» является attachted к кнопке старта, еще не скрыть баннер ..

Что мне делать?

ответ

1

Проблема заключается в функции RequestBanner:

BannerView bannerView = new BannerView(adUnitId, AdSize.SmartBanner, AdPosition.Bottom); 

bannerView является локальной переменной и новый BannerView экземпляр будет храниться в этой локальной переменной bannerView вместо глобальной переменной bannerView.

Необходимо, чтобы экземпляр BannerView хранился в глобальной переменной bannerView.

Это должно быть изменено на:

bannerView = new BannerView(adUnitId, AdSize.SmartBanner, AdPosition.Bottom); 

Другая проблема здесь:

public void HideAd() 
{ 
    bannerView.Destroy(); 
    bannerView.Hide(); 
} 

Вы разрушаете bannerView до сокрытия его. Это должно быть наоборот. Вы должны Hide, затем DestroybannerView. Если факт, просто Скрытие bannerView должно быть прекрасным. Вам не нужно Destroy.

+1

Спасибо :) Это работает – Jip1912

 Смежные вопросы

  • Нет связанных вопросов^_^