簡體   English   中英

如何在Unity中使用Admob獎勵視頻正確獎勵玩家?

[英]How to properly reward player with Admob rewarded video in Unity?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Api;
using UnityEngine.UI;

public class AdManager : MonoBehaviour {

RewardBasedVideoAd rewardBasedVideo;

static InterstitialAd interstitial;

string VideoID = "ca-app-pub-3888784411212422/2850896103";
string adUnitId = "ca-app-pub-3888784411212422/4158795262";

public static AdManager Instance;
void Start ()
{
    Instance = this;
    DontDestroyOnLoad(gameObject);
    RequestRewardBasedVideo();
    RequestInterstitial();
}

public void RequestRewardBasedVideo()
{       
    rewardBasedVideo = RewardBasedVideoAd.Instance;
    rewardBasedVideo.LoadAd(new AdRequest.Builder().Build(), adUnitId);
}

public void RequestInterstitial()
{
    interstitial = new InterstitialAd(VideoID);
    interstitial.LoadAd(new AdRequest.Builder().Build());
}
public void ShowAd()
{
    if(rewardBasedVideo.IsLoaded())
    {
        rewardBasedVideo.Show();
        rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded;
    }
}
public static void ShowInter()
{
    showInterstitial(interstitial);
}


private void showAdd(RewardBasedVideoAd r)
{
    if (r.IsLoaded())
    {
        //Subscribe to Ad event
        r.Show();
        r.OnAdRewarded += HandleRewardBasedVideoRewarded;
    }
}

public void HandleRewardBasedVideoRewarded(object sender, Reward args)
{

    PlayerPrefs.SetInt("coin", PlayerPrefs.GetInt("coin") + 200);
    GameObject.FindGameObjectWithTag("Coin").GetComponent<Text>().text = PlayerPrefs.GetInt("coin").ToString();
    GameObject.FindGameObjectWithTag("Double").GetComponent<Button>().interactable = false;

    Debug.Log("Pref: " + PlayerPrefs.GetInt("coin"));
}

static void showInterstitial(InterstitialAd i)
{
    if (i.IsLoaded())
    {
        i.Show();
    }
}
}

我用200個硬幣獎勵玩家,但是我每次獲得獎勵的方式都會增加200。第一次獎勵玩家時,他獎勵200,下次他獎勵400,下次獎勵600,等等。我試圖通過多種方式更改代碼,但是沒有積極的結果。

單擊按鈕時調用的方法是ShowAd()。 每次當帶按鈕的面板調用該方法時,我都會調用RequestRewardBasedVideo()。

答案就是添加和創建新對象,例如Void會有類似的東西

 public void HandleRewardBasedVideoRewarded(object sender, Reward args)
    {
        int CoinOld = PlayerPrefs.GetInt("coin");
        CoinOld += 200;
        PlayerPrefs.SetInt("coin", CoinOld);
        GameObject.FindGameObjectWithTag("Coin").GetComponent<Text>().text = PlayerPrefs.GetInt("coin").ToString();
        GameObject.FindGameObjectWithTag("Double").GetComponent<Button>().interactable = false;

        Debug.Log("Pref: " + PlayerPrefs.GetInt("coin"));
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM