void Start()
{
_rewardBasedVideo = RewardBasedVideoAd.Instance;
// RewardBasedVideoAd is a singleton, so handlers should only be registered once.
_rewardBasedVideo.OnAdRewarded += videoAdComplete;
_rewardBasedVideo.OnAdLoaded += delegate (object sender, EventArgs args)
{
Debug.Log("Video Ad Loaded");
};
_rewardBasedVideo.OnAdOpening += delegate (object sender, EventArgs args)
{
Debug.Log("Video Ad Opening");
};
_rewardBasedVideo.OnAdStarted += delegate (object sender, EventArgs args)
{
Debug.Log("Video Ad Started");
};
_rewardBasedVideo.OnAdFailedToLoad += delegate (object sender, AdFailedToLoadEventArgs args)
{
Debug.Log("Video Ad Failed: " + args.Message);
};
}
public void RequestAndShowVideoAd(int coinReward)
{
AdManager.Instance._coinReward = coinReward;
AdManager.Instance.RequestVideo();
AdManager.Instance.StartCoroutine(Instance.ShowVideoLoop());
}
private void RequestVideo()
{
#if UNITY_EDITOR
string adUnitId = "unused";
#elif UNITY_ANDROID
string adUnitId = "ca-app-pub-xxx";
#elif UNITY_IOS
string adUnitId = "ca-app-pub-xxx";
#endif
_rewardBasedVideo.LoadAd(createAdRequest(), adUnitId);
}
private IEnumerator ShowVideoLoop()
{
while(!_rewardBasedVideo.IsLoaded())
{
yield return new WaitForSeconds(0.5f);
}
ShowVideo();
}
private void ShowVideo()
{
_rewardBasedVideo.Show();
}
private void videoAdComplete(object sender, Reward reward)
{
// Do Reward
}