Admob Награда видео не вызывает события после закрытия

Я пытаюсь добавить видео-награду Admob в свою игру для Android, созданную в Unity. Отображается нормально, но когда я закрываю рекламу, награда никогда не дается (монета).
Это мой C# скрипт

AddCoinScript:

public class AddCoinScript : MonoBehaviour {  

    public Text scoreTextMesh, txtCoin;  
    public int coin;  
    int numberOfCoins;  

    void OnEnable ()  
    {  
        scoreTextMesh.text = "" + 0;  
        numberOfCoins = PlayerPrefs.GetInt("Coin", coin);       // Load archive coins  
        coin = coin + numberOfCoins;  
        txtCoin.text = coin.ToString();  
    }  

    public void AddsCoin()  
    {  
        coin += 30;  
        txtCoin.text = "" + coin;  
        PlayerPrefs.SetInt("Coin", coin);   // Archive the Score coins in "PlayerPrefs.SetInt"  
    }  
}  

AdmobRewardedVideo:

public class AdmobRewardedVideo : MonoBehaviour {  

private RewardBasedVideoAd rewardBasedVideo;  
public AddCoinScript Controller;  


    public void Start()
    {
        DontDestroyOnLoad(gameObject);

        #if UNITY_ANDROID
            string appId = "ca-app-pub-6144446801473222~4916984641";
        #elif UNITY_IPHONE
            string adUnitId = "";
        #else
            string adUnitId = "";
        #endif

        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize(appId);

        // Get singleton reward based video ad reference.
        this.rewardBasedVideo = RewardBasedVideoAd.Instance;

        // Called when the user should be rewarded for watching a video.
        rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded;

        // Called when the ad is closed.
        rewardBasedVideo.OnAdClosed += HandleRewardBasedVideoClosed;

        this.RequestRewardBasedVideo();
    }



    private void RequestRewardBasedVideo()
    {
        #if UNITY_ANDROID
        //Test;
            string adUnitId = "ca-app-pub-3940256099942544/5224354917";
        #elif UNITY_IPHONE
            string adUnitId = "";
        #else
            string adUnitId = "";
        #endif

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

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

    public void HandleRewardBasedVideoRewarded(object sender, Reward args)
    {
        Controller.AddsCoin();
    }

    public void HandleRewardBasedVideoClosed(object sender, EventArgs args)
    {
        this.RequestRewardBasedVideo();
    }  
}   

0 ответов

Другие вопросы по тегам