C# 显示Unity3d广告,后跟Application.LoadLevel(Application.loadedLevel);

C# 显示Unity3d广告,后跟Application.LoadLevel(Application.loadedLevel);,c#,android,unity3d,C#,Android,Unity3d,当用户选择在我的Unity3d游戏中重放当前场景时,我试图在Android应用程序上显示一个间隙广告。我的第一次尝试在编辑器中产生了测试广告的闪烁,但在实际设备上没有产生任何东西 以下是我使用的代码(仅包括相关代码): 我认为这可能与Application.LoadLevel(Application.loadedLevel)有关跟随ShowAd(),因此我创建了一个新的测试按钮来尝试隔离问题: public void ShowAd () { // If ready, show an ad

当用户选择在我的Unity3d游戏中重放当前场景时,我试图在Android应用程序上显示一个间隙广告。我的第一次尝试在编辑器中产生了测试广告的闪烁,但在实际设备上没有产生任何东西

以下是我使用的代码(仅包括相关代码):

我认为这可能与
Application.LoadLevel(Application.loadedLevel)有关跟随
ShowAd(),因此我创建了一个新的测试按钮来尝试隔离问题:

public void ShowAd ()
{
    // If ready, show an advertisement
    if (Advertisement.IsReady ()) 
    {
        Advertisement.Show ();
    }
}

public void TestAdButton ()
{
    ShowAd ();
}
这样可以正确地显示广告;但是,我想在点击重播按钮(这将触发当前场景的重播)之后实现广告。我对Unity员工的说法感到更加困惑


我在这里做错了什么?

我看到的错误是,您在调用ShowAd之后调用了LoadLevel,因此显示了add,但随后立即被LoadLevel覆盖。请尝试存储一个PlayerPrefs,以确定该级别是否已重新启动

public void Replay ()
{
    PlayerPrefs.SetInt("isReplayed", 1);
    Application.LoadLevel (Application.loadedLevel);
}
然后在GameController上添加:

public void Start()
{
    if(PlayerPrefs.GetInt("isReplayed") == 1)
    {
         ShowAd();
    }
    PlayerPrefs.SetInt("isReplayed", 0);
}
public void Start()
{
    if(PlayerPrefs.GetInt("isReplayed") == 1)
    {
         ShowAd();
    }
    PlayerPrefs.SetInt("isReplayed", 0);
}