且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何检查广​​告是否已在Unity中完成

更新时间: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;
}