Unity 5 NullReferenceException after loading new scene.
Hey, so I'm doing my first fps game and now I'm at the point of going from the start menu to my first scene. When that new scene loads, on the awake, in my pause game script, I set the pauseMenu.SetActive(false) (it's a Canvas and the pause game script is not attached to it but to a game manager object) and I set a bool that says isPaused to false (before the awake function).
Now the feeling is great, I'm thinking I've made it, nothing crashed, it is so easy! But... when I press on Escape (to pause the game), I get a NullReferenceException cause it can't find the pause menu anymore! Before I started working on switching scenes, that bit was working more than fine, SO, my question is, is there something to know when switching between scenes that breaks the scripts execution? My shooting doesn't work neither but my SwitchWeapon/Movement?MouseLook/ItemPickUp scripts work. Is there a black hole when switching between a Start Menu scene to an actual level scene? HELP :)
Here is my code on the PauseGame Script
GameObject pauseMenu;
bool isPaused = false;
void Awake()
{
if (Application.loadedLevelName != "Start_Menu")
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
pauseMenu = GameObject.Find("Canvas_Pause_Menu");
pauseMenu.SetActive(false);
Debug.Log(isPaused + " " + pauseMenu);
}
}
void Update()
{
// Here I use Application.loadedLevelName because I haven't found
// a SceneManager function in the Unity docs to check here)
if (Application.loadedLevelName != "Start_Menu")
{
if (Input.GetKeyDown(KeyCode.Escape))
{
if (!isPaused)
{
pauseMenu.SetActive(true);
Time.timeScale = 0f;
Cursor.visible = true;
isPaused = !isPaused;
}
else if (isPaused)
{
pauseMenu.SetActive(false);
Time.timeScale = 1f;
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
isPaused = !isPaused;
}
}
}
}
Your answer
Follow this Question
Related Questions
Null Reference Exception ONLY (sometimes) when loading the scene... 1 Answer
NullException Error while instantiating gameobjects 0 Answers
How to load a GameObject from Byte[] in the scene on runtime? 2 Answers
(Solved) Findout if an object exist in the scene, but dont trow exception 1 Answer
Huge Game Object Management & Multiple Scene Loading 0 Answers