首页 > 解决方案 > 如何通过单击按钮移动到 Unity 中的下一个场景来显示插页式广告?

问题描述

如何在单击按钮的动作中显示插页式广告 admob 以进入下一个场景,我已经在尝试您将在下面看到的内容。

你能帮我吗 ?

*第一种方法我正在创建一个游戏对象并在其中添加脚本 Admanager 并将游戏对象与用于移动到下一个场景的按钮连接,-注意按钮下一个场景已经与 On Click gameobject Admanger 与 RequestInterstitial 和 ShowInterstitial .. ..

*第二种方法也直接在脚本中添加,我在方法中添加移动到下一个场景 ShowInterstitial 并在游戏管理器脚本中使用 void start RequestInterstitial,-注意我通过 ShowInter 更改 Request... 并且仍然无法正常工作

脚本游戏管理器

private void Start()
    {
        //Show Banner
        AdManager.Instance.RequestBanner();
        //Interstitial Preparing
        AdManager.Instance.Invoke("RequestInterstitial", 0.5f);
        //Interstitial Preparing

    }
//Note: i'm trying with void update too

脚本按钮管理器

public void Level2btn()
    {
        //Interstitial Showing
        AdManager.Instance.Invoke("ShowIinterstitial", 0.5f);
        //Interstitial Showing
        SceneManager.LoadScene(2);
        Time.timeScale = 1f;
    }

顺便说一下,这是 AdManager 的脚本:

using UnityEngine;
using GoogleMobileAds;
using GoogleMobileAds.Api;
using System;

public class AdManager : MonoBehaviour
{

       public static AdManager Instance { get; set; }

    public bool interstitialLoaded = false;
    public bool interstitialClosed = false;

    const string interstitialAdId = "ca-app-pub-3940256099942544/1033173712";
    const string bannerADid = "ca-app-pub-3940256099942544/6300978111";

    InterstitialAd interstitialAd;
    AdRequest request;
    private BannerView bannerview;

    private void Awake()
    {
        if(Instance == null)
        {
            Instance = this;
        }
        else
        {
            Destroy(gameObject);
        }
        DontDestroyOnLoad(gameObject);
        interstitialAd = new InterstitialAd(interstitialAdId);
        Showbanner();

        request = new AdRequest.Builder().Build();
        interstitialAd.LoadAd(request);
    }
    public void RequestBanner()
    {
        bannerview = new BannerView(bannerADid, AdSize.Banner, AdPosition.TopRight);
        AdRequest request = new AdRequest.Builder().Build();

        bannerview.LoadAd(request);
        bannerview.Show();
    }
    public void Showbanner()
    {
        if(bannerview ==  null)
        {
            RequestBanner();
        }
    }
    public void InvokeLoadAd()
    {
        Invoke("ShowIintertitial", 2.0f);
    }
    public void InvokeAd()
    {
        Invoke("ShowIintertitial", 2.0f);
    }

    public void RequestInterstitial()
    {
        request = new AdRequest.Builder().Build();
        interstitialAd.LoadAd(request);
    }
    public void ShowIintertitial()
    {

        if(interstitialAd.IsLoaded())
        {
            interstitialLoaded = true;
            interstitialAd.Show();

        }
        interstitialAd.OnAdClosed += InterstitialAd_onAdClosed;
    }

    private void InterstitialAd_onAdClosed(object sender, EventArgs e)
    {
        throw new NotImplementedException();
    }
}

标签: c#androidunity3dadmobads

解决方案


可能需要查看更多代码才能弄清楚发生的所有事情,但您可以检查几件事。

Level2btn()1)您是否在检查器中的按钮的 OnClick 上调用您的方法?

2)另外,可能需要仔细检查您的拼写(ShowIinterstitial 有一个额外的 I)以确保它与您尝试调用的方法匹配:

AdManager.Instance.Invoke("ShowIinterstitial", 0.5f);


推荐阅读