Куда поместить функцию запроса рекламного объявления в коде? - PullRequest
1 голос
/ 04 июля 2019

Чтобы постоянно показывать рекламу, я хочу показать ей, что, по вашему мнению, является правильным местом для установки этой функции; это Start ()? Старт вызывается после появления игрового объекта, так как плохо держать рекламу ??

public void RequestInterstitialAd()
{
    interstitalAd = new InterstitialAd(interstitalAdID);
    AdRequest adRequest = new AdRequest.Builder().Build();
    interstitalAd.LoadAd(adRequest);

    interstitalAd.OnAdLoaded += HandleOnAdLoaded;
    interstitalAd.OnAdFailedToLoad += HandleOnAdFailedToLoad;
    interstitalAd.OnAdOpening += HandleOnAdOpened;
    interstitalAd.OnAdClosed += HandleOnAdClosed;
    interstitalAd.OnAdLeavingApplication += HandleOnAdLeavingApplication;
}

Ответы [ 2 ]

0 голосов
/ 18 июля 2019

Мне нужно звонить каждый раз, когда мне нужно показать объявление, поэтому я сделал это:

public class AdMobManager : MonoBehaviour
{
    public static AdMobManager instance;//to have the right to call this class functions and variables without the need to put static to each one from another class 
    [SerializeField]
    private string appID,interstitalAdID;
    private InterstitialAd interstitalAd;
    public bool isAdOpened,isAdClosed;
    // Start is called before the first frame update
    void Start()
    {
        instance = this;
        MobileAds.Initialize(appID);
        RequestInterstitialAd();//load an ad from the first time game is opened
    }

    // Update is called once per frame
    void Update()
    {
    }

    public void RequestInterstitialAd()
    {
        if(interstitalAd != null)//remove the old interstital ad showed before to create a new one 
        {
            interstitalAd.Destroy();
        }
        interstitalAd = new InterstitialAd(interstitalAdID);
        AdRequest adRequest = new AdRequest.Builder().Build();
        interstitalAd.LoadAd(adRequest);
        interstitalAd.OnAdLoaded += HandleOnAdLoaded;
        interstitalAd.OnAdFailedToLoad += HandleOnAdFailedToLoad;
        interstitalAd.OnAdOpening += HandleOnAdOpened;
        interstitalAd.OnAdClosed += HandleOnAdClosed;
        interstitalAd.OnAdLeavingApplication += HandleOnAdLeavingApplication;
        Debug.Log("Ads Request Created");//used to test
    }

    public void DisplayInterstitialAd()
    {
        if (interstitalAd.IsLoaded())
        {
            interstitalAd.Show();
        }
    }

    public void HandleOnAdLoaded(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdLoaded event received");
    }
    public void HandleOnAdFailedToLoad(object sender,AdFailedToLoadEventArgs args)
    {
        MonoBehaviour.print("HandleFailedToReciveAd event received with message: " + args.Message);
    }
    public void HandleOnAdOpened(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdOpened event received");
        isAdOpened = true;
    }
    public void HandleOnAdClosed(object sender,EventArgs args)
    {
        MonoBehaviour.print("HandleAdClosed event received");
        isAdClosed = true;
        isAdOpened = false;//initialise
        RequestInterstitialAd();//everytime we show an ad load another one when the first one is closed
    }
    public void HandleOnAdLeavingApplication(object sender,EventArgs args)
    {
        MonoBehaviour.print("HandleAdLeavingApplication event recived");
    }


}
0 голосов
/ 04 июля 2019

Да, делать это в методе «Пуск» статического GameObject.потому что его нужно инициализировать один раз, а не несколько раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...