개체 참조가 개체 인스턴스에 전송되지 않습니다. 내 코드는 S ceneFader.instance.LoadLevel("Gameplay");
입니다. 내 새 2D 안드로이드 게임에 사용하고 있습니다. MainMenuController.cs에 대한스크립트 인스턴스가 null을 반환합니다.
내 전체 코드는
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];
}
}
}
모든 신체가 문제의 동일한 종류를 '입니까?
을 사용하여 UnityEngine을 확인하십시오. using System.Collections;
공용 클래스 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);
}
}
오류가 표시되는 곳 (오류 과거 복사)과 같은 정보를 추가하십시오. – matiaslauriti
제목을 변경하지 않아서 닫을 수 없도록 변경했습니다. 그렇게하면 중복되기 때문에 제목으로 오류를 사용하지 마십시오. 당신은'SceneFader.instance.LoadLevel' 라인에서 충돌한다고했습니다. 추가 도움을 얻기 위해'SceneFader' 스크립트를 게시하십시오. – Programmer
아마도 장면을 빌드에 추가하지 않았을 수 있습니다. 그것은 흔히 잊어 버리는 오류입니다. – matiaslauriti