Pause Menu not working ;-;
I've been following a bunch of Brackeys Unity coding tutorials to try and get better at making menus, but after making my Pause menu, the buttons don't work. Idk if I copied down his code wrong or messed up somewhere else, but I'm still really new at this, I don't always understand why he does what he does in the game-making process.
I'm using Unity 2019.2.13f1 Here's my code and everything I have so far.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class PauseMenu : MonoBehaviour
{
public static bool GameIsPaused = false;
public GameObject pauseMenuUI;
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
if (GameIsPaused)
{
Resume();
} else
{
Pause();
}
}
}
public void Resume()
{
pauseMenuUI.SetActive(false);
Time.timeScale = 1f;
GameIsPaused = false;
}
void Pause()
{
pauseMenuUI.SetActive(true);
Time.timeScale = 0f;
GameIsPaused = true;
}
public void LoadMainMenu()
{
Time.timeScale = 1f;
SceneManager.LoadScene("MenuScreen");
}
public void QuitGame()
{
Debug.Log("Quitting game...");
Application.Quit();
}
}
Any and all help is greatly appreciated, I feel like such a noob at this sometimes ^^'
(Also, didn't realize how many of these kinds of questions already existed on here. I read up on a bunch of them, but none of them seem to make sense on how fix my problem, sadly.)
Edit: I thought it was also worth mentioning that when I hover over my buttons, they never seem to highlight either. It happened when I was making my main menu too, even though that ended up working fine as far as function.
Answer by Maggatron · Dec 29, 2019 at 07:31 PM
Update: I found a similar problem to my own and edited my code with a few CursorLockMode and Cursor.lockState variables so that even though my buttons don't work, at least my mouse will stop disappearing whenever I click.
The new code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class PauseMenu : MonoBehaviour
{
public static bool GameIsPaused = false;
public GameObject pauseMenuUI;
CursorLockMode desiredMode;
void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
if (GameIsPaused)
{
Resume();
} else
{
Pause();
}
}
}
public void Resume()
{
pauseMenuUI.SetActive(false);
Time.timeScale = 1f;
GameIsPaused = false;
Cursor.visible = false;
desiredMode = CursorLockMode.Confined;
}
void Pause()
{
pauseMenuUI.SetActive(true);
Time.timeScale = 0f;
GameIsPaused = true;
Cursor.visible = true;
desiredMode = CursorLockMode.None;
{
Cursor.lockState = desiredMode;
}
}
public void LoadMainMenu()
{
Time.timeScale = 1f;
SceneManager.LoadScene("MenuScreen");
}
public void Quit()
{
Debug.LogWarning("Quitting game...");
Application.Quit();
}
}
Answer by PixCaffeinedBear · Mar 10, 2021 at 09:46 AM
You need to add the EventSystem to your canvas for make the buttons work !