object reference not sent to an instance of an object
My code is SceneFader.instance.LoadLevel("Gameplay");
I am using it for my new 2d android game in unity.
my complete code for MainMenuController.cs is '
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class MainMenuController : MonoBehaviour {
[SerializeField]
private Button musicBtn;
[SerializeField]
private Sprite[] musicIcons;
// Use this for initialization
void Start () {
CheckToPlayTheMusic ();
}
void CheckToPlayTheMusic(){
if (GamePreferences.GetMusicState () == 1) {
MusicController.instance.PlayMusic (true);
musicBtn.image.sprite = musicIcons [1];
} else {
MusicController.instance.PlayMusic (false);
musicBtn.image.sprite = musicIcons [0];
}
}
public void StartGame(){
GameManager.instance.gameStartedFromMainMenu = true;
//Application.LoadLevel ("Gameplay");
SceneFader.instance.LoadLevel("Gameplay");
}
public void HighscoreMenu(){
Application.LoadLevel ("HighScoreScene");
}
public void OptionsMenu(){
Application.LoadLevel ("OptionsMenu");
}
public void QuitGame(){
Application.Quit ();
}
public void MusicButton(){
if (GamePreferences.GetMusicState () == 0) {
GamePreferences.SetMusicState (1);
MusicController.instance.PlayMusic (true);
musicBtn.image.sprite = musicIcons [1];
} else if (GamePreferences.GetMusicState () == 1) {
GamePreferences.SetMusicState (0);
MusicController.instance.PlayMusic (false);
musicBtn.image.sprite = musicIcons [0];
}
}
}
Any body have same kind of issue?
please check scenefader script
using UnityEngine; using System.Collections;
public class SceneFader : MonoBehaviour {
public static SceneFader instance;
[SerializeField]
private GameObject fadePanel;
[SerializeField]
private Animator fadeAnim;
// Use this for initialization
void Awake () {
MakeSingleton ();
}
void MakeSingleton(){
if (instance != null) {
Destroy (gameObject);
} else {
instance = this;
DontDestroyOnLoad (gameObject);
}
}
public void LoadLevel(string level){
StartCoroutine (FadeInOut (level));
}
IEnumerator FadeInOut (string level){
fadePanel.SetActive (true);
fadeAnim.Play ("FadeIn");
yield return StartCoroutine (MyCoroutine.WaitForRealSeconds (1f));
Application.LoadLevel (level);
fadeAnim.Play ("FadeOut");
yield return StartCoroutine (MyCoroutine.WaitForRealSeconds (.7f));
fadePanel.SetActive (false);
}
}