簡體   English   中英

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 ();
        }
    }
}

還在開始按鈕上附加了“公共無效的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM