NullReference ошибка Unity
Доброго времени суток.
Движок выдает ошибку NullReferenceExpection в
public class AppPAUSE : MonoBehaviour
{
[SerializeField]
private GameObject PauseMenu;
private PauseMenu ShowPause;
private void Start()
{
ShowPause = PauseMenu.GetComponent<PauseMenu>();
}
void OnApplicationFocus(bool hasFocus)
{
if (!FishDeath.IsDeath)
{
Debug.LogFormat("hasFocus: {0}", hasFocus);
ShowPause.Pause();
}
}
void OnApplicationPause(bool pauseStatus)
{
if (!FishDeath.IsDeath)
{
Debug.LogFormat("pauseStatus: {0}", pauseStatus);
}
}
}
На строчку ShowPause.Pause();
Почитал и понял,что это из-за того,что ShowPause равна нулю ,либо не инициализируется после.Попытался сделать так
(if ShowPause == null)
ShowPause = new PauseMenu();
После этого стал ругаться на такую же ошибку,но уже в другом скрипте
public class PauseMenu : MonoBehaviour
{
public GameObject pauseMenuUI;
public static bool GameIsPaused = false;
public void Resume()
{
pauseMenuUI.SetActive(false);
Time.timeScale = 1f;
GameIsPaused = false;
}
public void Pause()
{
pauseMenuUI.SetActive(true);
Time.timeScale = 0f;
GameIsPaused = true;
}
public void Raload()
{
Time.timeScale = 1f;
SceneManager.LoadScene(1);
SpawnEnemy.isSpawnerOn = true;
ScoreScript.scoreValue = 0;
FishDeath.IsDeath = false;
ScoreScript.scoreIncreasing = true;
}
public void LoadMenu()
{
SceneManager.LoadScene(0);
}
}
на строчку pauseMenuUI.SetActive(true);
Как можно исправить ситуацию?Оно все работает как надо,но хотелось бы без ошибок
P.S.Когда я инициализировал
(if ShowPause == null)
ShowPause = new PauseMenu();
1)Я не понял вообще зачем это делать,разве я выше не задаю,что мой ShowPause = скрипту? 2)Он начал писать,что new не применим в MonoBehavior и нужно использовать AddComponent();
P.S.S.Сейчас у меня ставится в игре пауза,при потере фокуса на экране,а вот эта функция никак себя не проявляет
void OnApplicationPause(bool pauseStatus)
{
if (!FishDeath.IsDeath)
{
Debug.LogFormat("pauseStatus: {0}", pauseStatus);
}
}
Я что-то делаю не так или же нужно собрать приложение и там уже проверять?По идее она отвечает за то,что открыто у тебя окно или нет,ведь так?
P.S.S.S.Игра под android ,поэтому нужна пауза как при сворачивании приложения,так и при блокировке экрана
Заранее спасибо за ответы и не кидайтесь сильно тапками,я только первый курс:)
Ответы (1 шт):
Собственно все оказалось просто,у меня висел этот скрипт на новом ГО ,перевесил на ГО,на котором висит скрипт pausemnu и все заработало.Если кратко,то надо,чтобы 2 скрипта висела на 1 объекте