Unity 广告无法在真实设备上运行

Posted

技术标签:

【中文标题】Unity 广告无法在真实设备上运行【英文标题】:Unity ads not working on real device 【发布时间】:2018-11-21 22:18:22 【问题描述】:

在我当前的 Unity 程序中,我想实现广告。当我运行游戏时,广告在 Unity 编辑器中运行,但是当我尝试在我的 iPhone 7 或 iPad Air 上运行广告时,没有广告出现。有人知道我做错了什么吗?

using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.Advertisements;

public class GameManager : MonoBehaviour


void Start()

    Advertisement.Initialize("Appstore-id");


bool gameHasEnded = false;

public float restartDelay = 1f;
public float addDelay = 1f;

public GameObject completeLevelUI;

public void CompleteLevel ()

    completeLevelUI.SetActive(true);
    Invoke("ShowAdd", addDelay);


public void EndGame()

    if (gameHasEnded == false)
    
        gameHasEnded = true;
        Debug.Log("Game over");
        Invoke("Restart", restartDelay);
    



public void ShowAdd()


    if (Advertisement.IsReady())
    
        Advertisement.Show ();
    


void Restart()

    SceneManager.LoadScene(SceneManager.GetActiveScene().name);



【问题讨论】:

@Eddge docs.unity3d.com/ScriptReference/MonoBehaviour.Invoke.html Invoke 接受第二个参数,它指示在调用方法之前应该经过(至少)多长时间。 @AndreasBjørnHassingNielsen 是的,我意识到了哈哈 【参考方案1】:

我遇到了同样的问题,我修复它的方法是递归函数,直到广告准备好。比如:

IEnumerator ShowAd()

    yield return new waitForSeconds(1);
    if (Advertisement.IsReady())
    
        Advertisement.Show ();
    
    else  StartCoroutine(ShowAd()); 

这样,它将调用该方法,直到广告准备好展示为止。 此外,请确保您在 Unity 广告设置中启用了测试(或调试)模式。

【讨论】:

感谢您的快速回答,我将尝试一下,看看它是否也适用于我。 我仍然收到错误,即使我将其更改为 ShowAdd @GriffinTeurlings 而不是调用 invoke 你是在调用 StartCoroutine 吗? [与问题无关]:@Mykod 在 else 块中 yield return ShowAd(); 还不够,因为那时我们已经在协程中了吗? 我刚刚在安装我的项目版本后测试了广告是否在我的手机上运行,​​但它们仍然无法运行。我还注意到的另一件事是,我的暂停菜单中的 UIButton 在我的手机上也不起作用,但它们在 Unity 编辑器中确实起作用。【参考方案2】:

除了递归启动 IEnumerator 之外,只需添加另一个选项:

IEnumerator ShowAd() 

    while(!Advertisement.isReady()) 
    
        yield return new waitForSeconds(1);
    
    Advertisement.Show();

【讨论】:

以上是关于Unity 广告无法在真实设备上运行的主要内容,如果未能解决你的问题,请参考以下文章

Unity Admob 显示测试和真实广告的混合

使用 Admob 未展示真实广告

Admob 测试广告不起作用,只有真实的广告在显示 - Android

Admob 测试广告不起作用,只有真实的广告在显示 - Android

Unity + Admob奖励广告:活动没有解雇

奖励测试广告显示但不是真实的