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
它。