Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using UnityEngine;
- using UnityEngine.UI;
- using GoogleMobileAds.Api;
- public class adsScript : MonoBehaviour
- {
- public static adsScript instance {get; private set;}
- private void Awake()
- {
- if (instance == null) {instance = this; DontDestroyOnLoad(this.gameObject);}
- else {Destroy(this.gameObject);}
- }
- private RewardedAd rewardedAd;
- public void RequestReward()
- {
- string adUnitId = "ca-app-pub-3940256099942544/5224354917";
- this.rewardedAd = new RewardedAd(adUnitId);
- AddRewardAdEvents();
- AdRequest request = new AdRequest.Builder().Build();
- this.rewardedAd.LoadAd(request);
- }
- [SerializeField] GameManager gameManager;
- 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);
- this.reqRewardedAdVideo = true;
- }
- 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);
- }
- public void HandleRewardedAdClosed(object sender, EventArgs args)
- {
- MonoBehaviour.print("HandleRewardedAdClosed event received");
- this.reqRewardedAdVideo = true;
- this.RequestReward();
- }
- public void HandleUserEarnedReward(object sender, Reward args)
- {
- gameManager.gameOverCanvas.SetActive(false);
- gameManager.ShowReward();
- }
- public void ShowRewardVideo()
- {
- if (this.rewardedAd.IsLoaded())
- {
- this.rewardedAd.Show();
- }
- else
- {
- Debug.Log("Reward video is not ready yet");
- }
- }
- public void Start()
- {
- MobileAds.Initialize(initStatus => { });
- this.RequestBanner();
- this.RequestInterstitial();
- this.RequestReward();
- }
- private bool reqRewardedAdVideo = true;
- void AddRewardAdEvents()
- {
- this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
- this.rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad;
- this.rewardedAd.OnAdOpening += HandleRewardedAdOpening;
- this.rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow;
- this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
- this.rewardedAd.OnAdClosed += HandleRewardedAdClosed;
- }
- void RemoveRewardAdEvents()
- {
- this.rewardedAd.OnAdLoaded -= HandleRewardedAdLoaded;
- this.rewardedAd.OnAdFailedToLoad -= HandleRewardedAdFailedToLoad;
- this.rewardedAd.OnAdOpening -= HandleRewardedAdOpening;
- this.rewardedAd.OnAdFailedToShow -= HandleRewardedAdFailedToShow;
- this.rewardedAd.OnUserEarnedReward -= HandleUserEarnedReward;
- this.rewardedAd.OnAdClosed -= HandleRewardedAdClosed;
- }
- public void OnDestroy()
- {
- RemoveRewardAdEvents();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment