В коде прописано что если 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);
}
}