【发布时间】:2018-08-15 14:48:30
【问题描述】:
我知道这个问题已经被问过好几次了,但即使我已经实施并尝试了所有解决方案,我还是被卡住了。我按照本教程进行插页式广告展示:
https://developers.google.com/admob/unity/interstitial
我的主要目标是在用户点击游戏的“重启”按钮时展示广告。
这是我的主要广告管理器类(与游戏对象相关联):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Api;
public class AdManager : MonoBehaviour {
public string interstitial_id;
public string app_id;
public InterstitialAd interstitial;
// Use this for initialization
void Start () {
//MobileAds.Initialize(app_id);
DontDestroyOnLoad(this);
Prepare_Video();
Debug.Log("Admob ilklendirildi: " + interstitial.ToString());
}
public void Show_Video()
{
Debug.Log("Reklam hazırlık durumu: " + interstitial.IsLoaded());
if (interstitial.IsLoaded()) {
Debug.Log("Reklam hazır, gösterilecek");
interstitial.Show();
}
else
{
Prepare_Video();
interstitial.Show();
}
}
public void Destroy_Video()
{
if(interstitial != null)
{
interstitial.Destroy();
}
}
public void Prepare_Video()
{
interstitial = new InterstitialAd(interstitial_id);
AdRequest request = new AdRequest.Builder().Build();
interstitial.LoadAd(request);
}
}
我在重启操作中调用 show 方法:
public void RestartScene()
{
GameStatusText.gameObject.SetActive(false);
RestartButton.gameObject.SetActive(false);
MeterText.gameObject.SetActive(false);
MeterTextTop.text = "";
Time.timeScale = 1;
TimeController.TimeLeft = 50f;
FindObjectOfType<AdManager>().Show_Video();
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
【问题讨论】:
-
注释掉 LoadScene() 调用是否有效?
-
我试过但没有运气:(
-
您已经验证 interstitial.IsLoaded() 返回 true 了吗?
-
是的,我已经验证了。
标签: unity3d admob interstitial