Как правильно наградить игрока Admob в Unity? - PullRequest
0 голосов
/ 25 июня 2018

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

public class admobVideo : MonoBehaviour {

	RewardBasedVideoAd rewardBasedVideo;

	static InterstitialAd interstitial;

	string VideoID = "ca-app-pub-6032262586397129~2821965113";
	string adUnitId = "ca-app-pub-6032262586397129/5003220953";

	public static admobVideo 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("coins", PlayerPrefs.GetInt("coins") + 5);
		GameObject.FindGameObjectWithTag("Coins").GetComponent<Text>().text = PlayerPrefs.GetInt("coins").ToString();
		GameObject.FindGameObjectWithTag("Double").GetComponent<Button>().interactable = false;

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

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

Я награждаю игроков 5 монетами, но когда я нажимаю кнопку, ничего не появляется, я пытался изменить код разными способами, но без положительного результата.

когда я нажимаю на кнопку в единстве, консоль показывает мне «Dummy загружен» и «Dummy showrewardedbasedvideoad»

Метод, который вызывается при нажатии кнопки - это ShowAd ().Пожалуйста, помогите

1 Ответ

0 голосов
/ 02 июля 2018
  1. Пожалуйста, проверьте, добавив отладку в метод HandleRewardBasedVideoRewarded, чтобы проверить, вызывается ли он.

  2. Также проверьте, что вы добавили прослушиватель для этого, поскольку вы не упомянули об этом вупомянутый выше код.

    rewardBasedVideo.OnAdRewarded + = this.HandleRewardBasedVideoRewarded;

  3. Вы не инициализировали mobileAds с идентификатором своего приложения:

    MobileAds.Initialize ();

...