Unity - Admob 隐藏横幅不起作用
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 ();
}
}
}
“'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
它。
为什么当我进入名为“'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 ();
}
}
}
“'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
它。