C# 统一-Admob隐藏横幅不';行不通
当我进入下一个名为“主要”的场景时,为什么我的admob横幅不隐藏? 我做了其他人在其他帖子上说的一切 这是我的代码:C# 统一-Admob隐藏横幅不';行不通,c#,unity3d,admob,hide,banner,C#,Unity3d,Admob,Hide,Banner,当我进入下一个名为“主要”的场景时,为什么我的admob横幅不隐藏? 我做了其他人在其他帖子上说的一切 这是我的代码: using GoogleMobileAds.Api; public class AdmobAds : MonoBehaviour { private BannerView bannerView; private void RequestBanner() { #if UNITY_ANDROID string adUnit
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之前,您正在销毁它。应该是相反的。您应该隐藏
然后销毁
横幅视图。如果是事实,只需隐藏bannerView
就可以了。你不必销毁它