- Home /
NullReferenceException: Object reference not set to an instance of an object Admanager.ShowFullScreenAd ()
Hi I am trying to implement the admob interstitial ad in my project . I had created an empty game object called Admanager in the scene and attached the Admanager.cs script to it. I wanted to show up an interstitial ad whenever the player clicks the replay button. But when I click the replay button it is showing as NullReferenceException: Object reference not set to an instance of an object Admanager.ShowFullScreenAd () and indicating that there is an error in this line if (this.interstitial.IsLoaded()) . I don't Understand what mistake i am doing
I had attached the Admanager.cs script and RestartMenu.cs (where i call the interstitial ad to show up).
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Api;
using System;
using System.Diagnostics;
using Debug = UnityEngine.Debug;
public class Admanager : MonoBehaviour
{
public static Admanager instance;
private string appID = " APP-ID";
public InterstitialAd interstitial;
private string fullScreenAdID = "INTERSTITIAL- ID";
public void Awake()
{
if(instance == null)
{
instance = this;
}
else
{
Destroy(this);
}
}
private void start()
{
MobileAds.Initialize(appID);
RequestInterstitial();
}
public void RequestInterstitial()
{
// Initialize an InterstitialAd.
this.interstitial = new InterstitialAd(fullScreenAdID);
// Called when an ad request has successfully loaded.
this.interstitial.OnAdLoaded += HandleOnAdLoaded;
// Called when an ad request failed to load.
this.interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad;
// Called when an ad is shown.
this.interstitial.OnAdOpening += HandleOnAdOpened;
// Called when the ad is closed.
this.interstitial.OnAdClosed += HandleOnAdClosed;
// Called when the ad click caused the user to leave the application.
this.interstitial.OnAdLeavingApplication += HandleOnAdLeavingApplication;
// Create an empty ad request.
AdRequest request = new AdRequest.Builder().Build();
// Load the interstitial with the request.
this.interstitial.LoadAd(request);
}
public void ShowFullScreenAd()
{
if (this.interstitial.IsLoaded())
{
this.interstitial.Show();
RequestInterstitial();
}
else
{
Debug.Log("not ready yet");
RequestInterstitial();
}
}
public void HandleOnAdLoaded(object sender, EventArgs args)
{
MonoBehaviour.print("HandleAdLoaded event received");
}
public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
MonoBehaviour.print("HandleFailedToReceiveAd event received with message: "
+ args.Message);
}
public void HandleOnAdOpened(object sender, EventArgs args)
{
MonoBehaviour.print("HandleAdOpened event received");
}
public void HandleOnAdClosed(object sender, EventArgs args)
{
MonoBehaviour.print("HandleAdClosed event received");
}
public void HandleOnAdLeavingApplication(object sender, EventArgs args)
{
MonoBehaviour.print("HandleAdLeavingApplication event received");
}
}
RestartMenu.cs script
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class RestartMenu : MonoBehaviour
{
public void menu()
{
FindObjectOfType<AudioManager>().Play("click");
SceneManager.LoadScene(0);
}
public void replay()
{
FindObjectOfType<AudioManager>().Play("click");
Admanager.instance.ShowFullScreenAd();
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
}
,
Your answer
Follow this Question
Related Questions
weird NullReferenceException 1 Answer
How to Connect Difficult Object using UnityEngine.Network 1 Answer
Null Reference - Help 0 Answers