[英]Unity - Admob hide banner doesn't work
當我轉到下一個名為“ Main”的場景時,為什么我的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”,但它並未隱藏標語。
我該怎么辦?
問題出在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
,只需隱藏bannerView
可以了。 您不必Destroy
它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.