Unity – Admob隐藏横幅不起作用

当我进入下一个名为“主要”的场景时,为什么我的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 (); } } } 

此外,”public void HideAd”附加到开始按钮,仍然不会隐藏横幅..

我该怎么办?

问题出在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然后Destroy bannerView 。 事实上,简单地隐藏bannerView应该没问题。 你不必Destroy它。

Interesting Posts