j'ai un souci lors d'une récompense en visionnant une vidéo d'une pub avec le plug-in admob, voila tout fonctionne parfaitement, sauf que lorsque je change de scène et que je reviens à ma scène de départ, les récompense sont doublé (x3 pour 3 scènes changées, x6 pour 6, ...., sachant que dans mes 2 scènes que j'utilise il y a le script ADManager) et je n'arrive pas à comprendre pourquoi sa fait cela.
voici mon code :
Code : Tout sélectionner
using UnityEngine;
using GoogleMobileAds.Api;
using System;
using UnityEngine.UI;
public class ADManager : MonoBehaviour
{
private string APP_ID = "...";
private BannerView bannerAD;
private InterstitialAd interstitialAD;
private RewardBasedVideoAd rewardVideoAD;
private GameObject Player;
// Start is called before the first frame update
void Start()
{
Player = GameObject.Find("Player");
//MobileAds.Initialize(APP_ID);
// Get singleton reward based video ad reference.
this.rewardVideoAD = RewardBasedVideoAd.Instance;
// Called when an ad request failed to load.
rewardVideoAD.OnAdFailedToLoad += HandleRewardBasedVideoFailedToLoad;
// Called when the user should be rewarded for watching a video.
rewardVideoAD.OnAdRewarded += HandleRewardBasedVideoRewarded;
// Called when the ad is closed.
rewardVideoAD.OnAdClosed += HandleRewardBasedVideoClosed;
RequestBannerAD();
RequestInterstitialAD();
RequestVideoAD();
Display_BannerAD();
}
void RequestBannerAD()
{
//string banner_ID = "...";
string banner_ID = "...";
bannerAD = new BannerView(banner_ID, AdSize.SmartBanner, AdPosition.Top);
}
public void Display_BannerAD()
{
//Real APP
//AdRequest adRequest = new AdRequest.Builder().Build();
//Test
AdRequest adRequest = new AdRequest.Builder().AddTestDevice("...").Build();
bannerAD.LoadAd(adRequest);
}
void RequestInterstitialAD()
{
//string interstitial_ID = "...";
string interstitial_ID = "...";
interstitialAD = new InterstitialAd(interstitial_ID);
//Real APP
//AdRequest adRequest = new AdRequest.Builder().Build();
//Test
AdRequest adRequest = new AdRequest.Builder().AddTestDevice("...").Build();
interstitialAD.LoadAd(adRequest);
}
public void Display_InterstitialAD()
{
if (interstitialAD.IsLoaded())
{
interstitialAD.Show();
}
}
void RequestVideoAD()
{
//string video_ID = "...";
string video_ID = "...";
rewardVideoAD = RewardBasedVideoAd.Instance;
//Real APP
//AdRequest adRequest = new AdRequest.Builder().Build();
//Test
AdRequest adRequest = new AdRequest.Builder().AddTestDevice("...").Build();
rewardVideoAD.LoadAd(adRequest, video_ID);
}
public void Display_Reward_Video()
{
if (rewardVideoAD.IsLoaded())
{
rewardVideoAD.Show();
}
}
//BANNER
public void HandleOnAdLoaded(object sender, EventArgs args)
{
Display_BannerAD();
}
public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
RequestBannerAD();
}
//REWARD VIDEO
public void HandleRewardBasedVideoFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
RequestVideoAD();
}
public void HandleRewardBasedVideoClosed(object sender, EventArgs args)
{
RequestVideoAD();
}
public void HandleRewardBasedVideoRewarded(object sender, Reward args)
{
PlayerPrefs.SetInt("coin", PlayerPrefs.GetInt("coin", 0) + 300);
RequestVideoAD();
}
}