C# Unity MobAd奖励视频不起作用

C# Unity MobAd奖励视频不起作用,c#,unity3d,ads,C#,Unity3d,Ads,我有一个奇怪的问题。我已经为我的游戏实现了一个广告代码,当我的玩家死后,我请求玩家观看广告并重生。当我在手机上构建并安装apk时,首先,一切都很好。在第二次尝试之后,我的Rewardedd.onAndwarded函数根本不起作用。我在游戏中控制广告状态,在第二场比赛中,我可以看到奖励系统不起作用。这是我的密码 void Start() { adState = 0; gameOverScript = GameObject.Find("GameO

我有一个奇怪的问题。我已经为我的游戏实现了一个广告代码,当我的玩家死后,我请求玩家观看广告并重生。当我在手机上构建并安装apk时,首先,一切都很好。在第二次尝试之后,我的Rewardedd.onAndwarded函数根本不起作用。我在游戏中控制广告状态,在第二场比赛中,我可以看到奖励系统不起作用。这是我的密码

  void Start()
    {
        adState = 0;
        gameOverScript = GameObject.Find("GameOver").GetComponent<GameOverCode>();
        kingSCript = GameObject.FindGameObjectWithTag("Player").GetComponent<RedKing>();
        isCompleted = false;
        RequestRewardedVideo();
        this.rewardedAd.OnAdRewarded += RewardPlayer;
       // this.rewardedAd.OnAdClosed += PlayerClosed;


    }

    public void RequestRewardedVideo()
    {
        rewardedAd = RewardBasedVideoAd.Instance;
        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded ad with the request.
        this.rewardedAd.LoadAd(request,rewarderID);
        if(rewardedAd.IsLoaded() == true)
        {
            adState = 5;
        }


    }
    private void RewardPlayer(object sender, EventArgs e)
    {
        isCompleted = true;
        adState = 1;
        Reward();
    }

    private void PlayerClosed(object sender, EventArgs e)
    {
        if(adState != 1)
        {
            adState = -1;
        }
    }


    public void Reward()
    {
        adState = 1;
        kingSCript.Reborn();
    }
    public void ShowVideoRewardAd()
    {
        if (this.rewardedAd.IsLoaded())
        {
            adState = 2;
            isLoaded = true;
            this.rewardedAd.Show();
        }
        else
        {
            isLoaded = false;
        }
    }
void Start()
{
吸附态=0;
gameOverScript=GameObject.Find(“GameOver”).GetComponent();
kingSCript=GameObject.FindGameObjectWithTag(“玩家”).GetComponent();
isCompleted=假;
RequestRewardedVideo();
this.rewardedAd.onadwarded+=奖赏玩家;
//this.rewardedAd.OnAdClosed+=播放器关闭;
}
public void RequestRewardedVideo()
{
RewardedDad=RewardBasedVideoAd.Instance;
//创建一个空的广告请求。
AdRequest request=新建AdRequest.Builder().Build();
//加载带有请求的奖励广告。
this.rewardedAd.LoadAd(请求,rewardedid);
if(rewardedAd.IsLoaded()==true)
{
吸附态=5;
}
}
私有无效奖励播放器(对象发送者,事件参数e)
{
isCompleted=真;
吸附态=1;
奖励();
}
私有void PlayerClosed(对象发送方,事件参数e)
{
if(adState!=1)
{
吸附态=-1;
}
}
公开无效奖励()
{
吸附态=1;
kingSCript.Reborn();
}
公开无效显示视频奖励()
{
if(this.rewardedAd.IsLoaded())
{
吸附态=2;
isLoaded=true;
这个。回报爸爸。Show();
}
其他的
{
isLoaded=false;
}
}

为什么广告状态在第二次尝试中不起作用?每次我重新上传的场景,所以每一个代码应该像第一次一样工作,但它根本不工作

所有方法的解决方案都是使用-=函数。请检查此脚本

    void Start()
{

    gameOverScript = GameObject.Find("GameOver").GetComponent<GameOverCode>();
    kingScript = GameObject.FindGameObjectWithTag("Player").GetComponent<RedKing>();
    adState = 0;
    rewardedID = "ca-app-pub-3940256099942544/5224354917";
    rewardedAd = RewardBasedVideoAd.Instance;
    isAdLoaded = false;
    RequestRewardedAd();
}


void Update()
{
    Debug.Log(adState);
    if (rewardedAd.IsLoaded())
    {
        isAdLoaded = true;
        Debug.Log("burda");
    }
    if(adState == 1)
    {
        kingScript.Reborn();
    }

    if(adState == -1)
    {
        gameOverScript.FinishTheGame();
    }
    
}



public void RequestRewardedAd()
{
    AdRequest request = AdRequestBuild();
    rewardedAd.LoadAd(request, rewardedID);

    rewardedAd.OnAdLoaded += this.HandleOnRewardedAdLoaded;
    rewardedAd.OnAdRewarded += this.HandleOnAdRewarded;
    rewardedAd.OnAdClosed += this.HandleOnRewardedAdClosed;
}

public void HandleOnRewardedAdLoaded(object sender, EventArgs args)
{
    Debug.Log("loaded");
    adState = 3;
}
public void HandleOnAdRewarded(object sender, EventArgs args)
{
    adState = 1;
    
}
public void HandleOnRewardedAdClosed(object sender, EventArgs args)
{
    rewardedAd.OnAdLoaded -= this.HandleOnRewardedAdLoaded;
    rewardedAd.OnAdRewarded -= this.HandleOnAdRewarded;
    rewardedAd.OnAdClosed -= this.HandleOnRewardedAdClosed;
    if(adState != 1)
    {
        playerAdCount = PlayerPrefs.GetInt("PlayerDontWatchTheAds");
        playerAdCount++;
        PlayerPrefs.SetInt("PlayerDontWatchTheAds", playerAdCount);
        adState = -1;
    }
}
public void ShowRewardAd()
{

    if (rewardedAd.IsLoaded())
    {
        rewardedAd.Show();
    }
}

AdRequest AdRequestBuild()
{
    return new AdRequest.Builder().Build();
}
void Start()
{
gameOverScript=GameObject.Find(“GameOver”).GetComponent();
kingScript=GameObject.FindGameObjectWithTag(“玩家”).GetComponent();
吸附态=0;
rewardedID=“ca-app-pub-3940256099942544/5224354917”;
RewardedDad=RewardBasedVideoAd.Instance;
isAdLoaded=false;
RequestRewardedAd();
}
无效更新()
{
Debug.Log(adState);
if(rewardedAd.IsLoaded())
{
isAdLoaded=真;
Debug.Log(“burda”);
}
if(adState==1)
{
kingScript.Reborn();
}
if(adState==-1)
{
gameOverScript.FinishTheGame();
}
}
public void RequestRewardedAd()
{
AdRequest request=ADREQUESTBILD();
rewardedAd.LoadAd(请求,rewardedID);
rewardedAd.OnAdLoaded+=此.HandleOnRewardedLoaded;
REWARDADD.ONADREWARD+=此.HANDLEONADREWARD;
rewardedAd.OnAdClosed+=此.handleOnRewardedAclosed;
}
public void handleOnRewardedAddLoaded(对象发送方、事件args args)
{
Debug.Log(“已加载”);
吸附态=3;
}
public void handleOnAddresseded(对象发送方、事件args args)
{
吸附态=1;
}
public void handleOnRewardedAdadClosed(对象发送方,事件args args)
{
rewardedAd.OnAdLoaded-=此.HandleOnRewardedLoaded;
奖赏;奖赏;奖赏;
RewardedDad.OnAdClosed-=此.handleOnRewardedClosed;
if(adState!=1)
{
playerAdCount=PlayerPrefs.GetInt(“playerdontwatchthead”);
playerAdCount++;
PlayerPrefs.SetInt(“playerDontWatchThead”,playerAddCount);
吸附态=-1;
}
}
公开无效显示奖赏()
{
if(rewardedAd.IsLoaded())
{
报答爸爸。Show();
}
}
AdRequest ADREQUESTBILD()
{
返回新的addRequest.Builder().Build();
}

为了解释问题,在第一次尝试中,我的adState在观看广告后更改为1,但在第二次尝试中,它没有更改。卡在2号了