更新时间:2023-11-28 21:37:46
因为您多次调用 rewardBasedVideo.OnAdRewarded + = HandleRewardBasedVideoRewarded;
多次注册事件。您应该从此处删除它,然后将其放在开始函数中。
Likely because you registering to event multiple times when you call rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded;
more than once. You should remove it from there and put it in the Start function instead.
string adUnitId = "ca-app-pub-5920324855307233/4458481507";
RewardBasedVideoAd rewardBasedVideo = null;
void Start()
{
//Subscribe to Ad event once
rewardBasedVideo = RewardBasedVideoAd.Instance;
//Subscribe to Ad event once
rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded;
}
public void adButton()
{
AdRequest request = new AdRequest.Builder().Build();
rewardBasedVideo.LoadAd(request, adUnitId);
showAd();
}
void Update()
{
}
public void showAd()
{
print("IN showAd()");
if (rewardBasedVideo.IsLoaded())
{
print("IN showAd() AND IsLoaded()");
rewardBasedVideo.Show();
}else{
print("IN showAd() NOT IsLoaded()");
}
}
public void HandleRewardBasedVideoRewarded(object sender, Reward args)
{
print("IN HandleRewardBasedVideoRewarded()");
IsLoaded()
string type = args.Type;
double amount = args.Amount;
//Reawrd User here
print("User rewarded with: " + amount.ToString() + " " + type);
managerScript.revival();
managerScript.Loading.SetActive(false);
}
public void OnDestroy()
{
//Un-Subscribe to Ad event once
rewardBasedVideo.OnAdRewarded -= HandleRewardBasedVideoRewarded;
}