Событие с вознаграждением за рекламу «HandleRewardBasedVideoRewarded» вызывается только один раз - PullRequest
0 голосов
/ 08 октября 2018

У меня есть приложения для единства с рекламой в награду.Каждый раз, когда пользователь запускает приложения, идет на главную сцену и нажимает кнопку, затем показывается вознагражденная реклама.

После показа объявления оно вызывает событие HandleRewardBasedVideoRewarded, но проблема в том, что это событие может быть тольковызывается один раз и не может быть вызван снова, даже когда я перехожу на другую сцену и возвращаюсь на главную сцену.

это вызовет событие снова, после того, как я перезапущу свои приложения.

есть какие-нибудь идеи, чтобы решить это?

спасибо

ниже мой источниккод:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Android;
using GoogleMobileAds.Common;
using GoogleMobileAds.Api;
using System;
using UnityEngine.SceneManagement;
using DG.Tweening;

public class z_reward_ads : MonoBehaviour {

    public string _rewardid = "...";
    private RewardBasedVideoAd rewardBasedVideo;
    private AdRequest rewardRequest;

    public GameObject MANAGER_SCORE;
    public GameObject BoxButton;
    public GameObject textButton;


    // Use this for initialization
    void Start () {

        this.rewardBasedVideo = RewardBasedVideoAd.Instance;
        RequestRewardedAds ();

        rewardBasedVideo.OnAdLoaded += HandleRewardBasedVideoLoaded;
        rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded;

        textButton.transform.DOPunchScale (new Vector3 (1, 1, 0), 2, 1, 0);
    }

    public void RequestRewardedAds()
    {

        // Create an empty ad request.
        rewardRequest = new AdRequest.Builder()
        .AddTestDevice("...")
        .Build();
        this.rewardBasedVideo.LoadAd(rewardRequest, _rewardid);
    }

    public void ShowRewardedAds()
    {
        if (rewardBasedVideo.IsLoaded()) {
        rewardBasedVideo.Show();
        }
    }

    //===REWARDED_VIDEO_EVENT
    public void HandleRewardBasedVideoLoaded(object sender, EventArgs args)
    {
        BoxButton.SetActive (true);

    }

    public void HandleRewardBasedVideoRewarded(object sender, Reward args)
    {
        MANAGER_SCORE.GetComponent<z_global_score> ().AddScore (10);

        Scene scene = SceneManager.GetActiveScene(); 
        SceneManager.LoadScene (scene.name);
    }

    // Update is called once per frame
    void Update () {

    }
}

...