Here is the code for a logic manager that manages the game
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class LogicScript : MonoBehaviour
{
public GameObject pauseMenuScreen;
public static bool isPaused;
private void Awake()
{
pauseMenuScreen.SetActive(false);
isPaused = false;
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Escape) )
{
if (isPaused)
{
resumeGame();
}
else
{
pauseGame();
}
}
public void pauseGame()
{
pauseMenuScreen.SetActive(true);
Time.timeScale = 0f;
isPaused = true;
}
public void resumeGame()
{
pauseMenuScreen.SetActive(false);
Time.timeScale = 1f;
isPaused = false;
}
}