код в ифах несколько раз повторяется при только одном нажатии

нажимаю ескейп, в дебаге пишет что выполнило Пауз(), Ресум(), Пауз(). А во время паузы выполняется Ресум(), Пауз(), Ресум(), Пауз(). Во время диалога нажимаю ескейп выполняется выключение диалога и еще пауза ставится. Как сделать что бы выполнялось только одно действие, а не несколько разных? ретурны в ифах не помогают

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

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

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

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