using UnityEngine;
public class ProperPause : MonoBehaviour
{
    public GameObject menuItem; // 菜单项
    public KeyCode pauser = KeyCode.Escape; // 暂停键
    public KeyCode unpause = KeyCode.Tab; // 恢复键
    public bool paused = false; // 游戏是否暂停

    void Update()
    {
        if (Input.GetKeyDown(pauser)) // 按下暂停键
        {
            paused = true;
            PauseGame();
        }
        else if (Input.GetKeyDown(unpause)) // 按下恢复键
        {
            paused = false;
            UnpauseGame();
        }
    }

    void PauseGame()
    {
        menuItem.SetActive(true); // 显示菜单
        Cursor.lockState = CursorLockMode.None; // 锁定鼠标
        Cursor.visible = true; // 显示鼠标指针
    }

    void UnpauseGame()
    {
        menuItem.SetActive(false); // 隐藏菜单
        Cursor.lockState = CursorLockMode.Locked; // 锁定鼠标
        Cursor.visible = false; // 隐藏鼠标指针
    }
}

注意:该脚本应该附加到一个空 GameObject 上,例如一个空的 GameObject 名为 "ProperPause"。