Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 统一-Admob隐藏横幅不';行不通_C#_Unity3d_Admob_Hide_Banner - Fatal编程技术网

C# 统一-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

当我进入下一个名为“主要”的场景时,为什么我的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之前,您正在销毁它。应该是相反的。您应该
隐藏
然后
销毁
横幅视图。如果是事实,只需隐藏
bannerView
就可以了。你不必销毁它