Unity Admob наградной игрок не наград - PullRequest
0 голосов
/ 14 марта 2020

Я работаю над приложением Android в Unity. Я настроил его так, чтобы игроки могли просматривать рекламу различных бонусов. Он работает с тестовыми объявлениями, и я вижу всплывающие тестовые объявления. Но обработчик события, который фактически вознаграждает игрока, похоже, не работает. Это то, что я настроил.

    public void RequestRewardAd()
    {
        string adUnitId;
#if UNITY_ANDROID
        adUnitId = "ca-app-pub-3940256099942544/5224354917";
#elif UNITY_IPHONE
        //adUnitId = "ca-app-pub-3940256099942544/1712485313";
#else
        adUnitId = "unexpected_platform";
#endif

        this.rewardedAd = new RewardedAd(adUnitId);

        // Called when an ad request has successfully loaded.
        this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
        // Called when an ad request failed to load.
        this.rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad;
        // Called when an ad is shown.
        this.rewardedAd.OnAdOpening += HandleRewardedAdOpening;
        // Called when an ad request failed to show.
        this.rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow;
        // Called when the user should be rewarded for interacting with the ad.
        this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
        // Called when the ad is closed.
        this.rewardedAd.OnAdClosed += HandleRewardedAdClosed;

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();
        // Load the rewarded ad with the request.
        this.rewardedAd.LoadAd(request);
    }

    public void HandleRewardedAdLoaded(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleRewardedAdLoaded event received");
    }

    public void HandleRewardedAdFailedToLoad(object sender, AdErrorEventArgs args)
    {
        MonoBehaviour.print(
            "HandleRewardedAdFailedToLoad event received with message: "
                                + args.Message);
    }

    public void HandleRewardedAdOpening(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleRewardedAdOpening event received");
    }

    public void HandleRewardedAdFailedToShow(object sender, AdErrorEventArgs args)
    {
        MonoBehaviour.print(
            "HandleRewardedAdFailedToShow event received with message: "
                                + args.Message);
        rewardadnumber = 0;
    }

    public void HandleRewardedAdClosed(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleRewardedAdClosed event received");
        this.RequestRewardAd();
        rewardadnumber = 0;
    }

    public void HandleUserEarnedReward(object sender, Reward args)
    {
        if(rewardadnumber == 1)
        {
            NGS.Coins += 5;
            NGS.CoinsText.text = "" + NGS.Coins;
            PlayerPrefs.SetInt("CoinsPref", NGS.Coins);
            rewardadnumber = 0;
        }
        if(rewardadnumber == 2)
        {
            NGS.ExtraHeart = true;
            NGS.ExtraHeartsadwatched();
            NGS.Extraheartsbutton.SetActive(false);
            NGS.extraheartbonuscountdown = 10;
            PlayerPrefs.SetInt("Extraheartcountdownpref", NGS.extraheartbonuscountdown);
            rewardadnumber = 0;
        }
    }

У меня загружается реклама при запуске с помощью this.RequestRewardAd();, и я вызываю команду add для показа с помощью кнопок игрового процесса. Эти кнопки также меняют номер вознаграждения на один или два. Объявление показывается, как и ожидалось. И это тестовое объявление, что парень уходит и говорит, что он собирается go запустить обработчики обратного вызова: P. Просто когда я закрываю игру, какая бы награда не была выбрана, не go до конца.

Я что-то пропустил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...