You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PlumberUltimateAds/Assets/Scripts/RewardedVideoGroup.cs

133 lines
2.9 KiB
C#

2 months ago
/*
http://www.cgsoso.com/forum-211-1.html
CG Unity3d Unity3d VIP
CGSOSO CG
daily assets update for try.
U should buy the asset from home store if u use it in your project!
*/
//using GoogleMobileAds.Api;
using System;
using UnityEngine;
public class RewardedVideoGroup : MonoBehaviour
{
public GameObject buttonGroup;
public GameObject textGroup;
public TimerText timerText;
private const string ACTION_NAME = "rewarded_video";
private void Start()
{
if (timerText != null)
{
TimerText obj = timerText;
obj.onCountDownComplete = (Action)Delegate.Combine(obj.onCountDownComplete, new Action(OnCountDownComplete));
}
Timer.Schedule(this, 0.1f, AddEvents);
if (!IsAvailableToShow())
{
buttonGroup.SetActive(value: false);
if (IsAdAvailable() && !IsActionAvailable())
{
int time = (int)((double)GameConfig.instance.rewardedVideoPeriod - CUtils.GetActionDeltaTime("rewarded_video"));
ShowTimerText(time);
}
}
InvokeRepeating("IUpdate", 1f, 1f);
}
private void AddEvents()
{
IronSourceRewardedVideoEvents.onAdRewardedEvent += HandleRewardBasedVideoRewarded;
}
private void IUpdate()
{
buttonGroup.SetActive(IsAvailableToShow());
}
public void OnClick()
{
IronSource.Agent.showRewardedVideo();
//AdmobController.instance.ShowRewardBasedVideo();
Sound.instance.PlayButton();
}
private void ShowTimerText(int time)
{
if (textGroup != null)
{
textGroup.SetActive(value: true);
timerText.SetTime(time);
timerText.Run();
}
}
public void HandleRewardBasedVideoRewarded(IronSourcePlacement ironSourcePlacement, IronSourceAdInfo ironSourceAdInfo)
{
buttonGroup.SetActive(value: false);
ShowTimerText(GameConfig.instance.rewardedVideoPeriod);
}
//public void HandleRewardBasedVideoRewarded(object sender, Reward args)
//{
// buttonGroup.SetActive(value: false);
// ShowTimerText(GameConfig.instance.rewardedVideoPeriod);
//}
private void OnCountDownComplete()
{
textGroup.SetActive(value: false);
if (IsAdAvailable())
{
buttonGroup.SetActive(value: true);
}
}
public bool IsAvailableToShow()
{
return IsActionAvailable() && IsAdAvailable();
}
private bool IsActionAvailable()
{
return CUtils.IsActionAvailable("rewarded_video", GameConfig.instance.rewardedVideoPeriod);
}
private bool IsAdAvailable()
{
//if (AdmobController.instance.rewardBasedVideo == null)
//{
// return false;
//}
return IronSource.Agent.isRewardedVideoAvailable();
}
private void OnDestroy()
{
IronSourceRewardedVideoEvents.onAdRewardedEvent -= HandleRewardBasedVideoRewarded;
}
private void OnApplicationPause(bool pause)
{
if (!pause && textGroup != null && textGroup.activeSelf)
{
int time = (int)((double)GameConfig.instance.rewardedVideoPeriod - CUtils.GetActionDeltaTime("rewarded_video"));
ShowTimerText(time);
}
}
}