KraGenDeveloper
@KraGenDeveloper
Unity Developer

AdMob не работает повторный просмотр rewarded add?

В общем в игре есть три воскрешения с помощью рекламы когда рекламу просматриваю то -=1. Когда попытки == 0 кнопка рекламы стаёт неактивной. Но после первого воскрешения второе не работает. скрипт рекламы
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using GoogleMobileAds.Api;

public class AdsMobReward : MonoBehaviour
{
    private string RewardedUnitId = "ca-app-pub-3940256099942544/5224354917";
    private RewardedAd rewardedAd;
    public Button showAd;

    public void OnEnable()
    {
        rewardedAd = new RewardedAd(RewardedUnitId);
        AdRequest adRequest = new AdRequest.Builder().Build();
        rewardedAd.LoadAd(adRequest);
        rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
    }
    private void HandleUserEarnedReward(object sender, Reward e)
    {
        int mon = PlayerPrefs.GetInt("Money");
        int gold = PlayerPrefs.GetInt("Gold");
        int life = PlayerPrefs.GetInt("LifeCount");
        mon += 20;
        gold += 1;
        life -= 1;
        PlayerPrefs.SetInt("Video",1);
        PlayerPrefs.SetInt("Money",mon);
        PlayerPrefs.SetInt("Gold",gold);
        PlayerPrefs.SetInt("LifeCount",life);       
    }
    public void Update(){
            int life = PlayerPrefs.GetInt("Life");
            if(life != 0 && life > 0){
                showAd.interactable = true;
            }
            else if(life == 0 && life < 0) showAd.interactable = false;
    }
    public void ShowAd()
    {
        if (rewardedAd.IsLoaded()){
            rewardedAd.Show();
        }
            
    }
}
  • Вопрос задан
  • 164 просмотра
Решения вопроса 2
B-Erolskiy
@B-Erolskiy
Unity Developer
После просмотра рекламы необходимо снова загрузить её с помощью следующих строк кода:
rewardedAd = new RewardedAd(RewardedUnitId);
AdRequest adRequest = new AdRequest.Builder().Build();
rewardedAd.LoadAd(adRequest);

Иначе новое рекламное видео не будет загружено и проверка rewardedAd.IsLoaded() будет выдавать false.
Ответ написан
KraGenDeveloper
@KraGenDeveloper Автор вопроса
Unity Developer
Решил проблему добавив сюда
private void HandleUserEarnedReward(object sender, Reward e)
    {
        int mon = PlayerPrefs.GetInt("Money");
        int gold = PlayerPrefs.GetInt("Gold");
        int life = PlayerPrefs.GetInt("LifeCount");
        mon += 20;
        gold += 1;
        life -= 1;
        PlayerPrefs.SetInt("Video",1);
        PlayerPrefs.SetInt("Money",mon);
        PlayerPrefs.SetInt("Gold",gold);
        PlayerPrefs.SetInt("LifeCount",life);       
    }

эти строки
rewardedAd = new RewardedAd(RewardedUnitId);
AdRequest adRequest = new AdRequest.Builder().Build();
rewardedAd.LoadAd(adRequest);

всем спасибо
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы