В коде прописано что если GameIsPaused = true в if на 16 строке то при нажатии ескейп меню паузы должно закрываться переменная тру а меню не закрывает

когда прожимется ескейп срабатывает елсе, там функция в которой одной строчкой является зменение переменной геймиспаузед на тру, но при этом нижмая на ескейп повторно, иф который срабатывает только когда геймиспаузед тру, не срабатывает. Думаю что просто переменная локальная в функции, как исправить?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class PauseMenu : MonoBehaviour
{
    public static bool GameIsPaused = false;
    public DialogWindow dialogWindow;

    public GameObject pauseMenuUI;
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            if (GameIsPaused)
            {
                Resume();
            }
            if (DialogWindow.IsDialog)
            {
                dialogWindow.Close();
            }
            else
            {
                Pause();
            }
        }
    }
    public void Resume()
    {
        Cursor.lockState = CursorLockMode.Locked;
        pauseMenuUI.SetActive(false);
        Time.timeScale = 1f;
        GameIsPaused = false;
    } 
    void Pause()
    {
        Cursor.lockState = CursorLockMode.None;
        pauseMenuUI.SetActive(true);
        Time.timeScale = 0f;
        GameIsPaused = true;
    }
    public void ToMainMenu(int sceneNumber)
    {
        SceneManager.LoadScene(sceneNumber);
    }
}

Ответы (0 шт):