因此,我现在要统一制作游戏,现在要为其制作暂停菜单。我正在为此使用C#,但遇到了一个问题,我无法真正解决问题。当我按Escape键时,应该使“暂停”菜单实体处于活动状态并且对用户可见,以及在游戏中冻结时间。但是当我按Escape键时,程序似乎无法识别输入。我尝试做不同的键,但它们没有用。我通过执行Debug.Log命令来确保输入是问题所在,当我测试时,我仍然没有任何触发它的迹象。这是我希望有人能帮助我的代码。
using UnityEngine;
public class PauseMenu : MonoBehaviour
{
public static bool GameIsPaused = true;
public GameObject PauseMenuUI;
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
if (GameIsPaused)
{
Resume();
}
else
{
Pause();
}
}
}
void Resume()
{
PauseMenuUI.SetActive(false);
Time.timeScale = 1f;
GameIsPaused = false;
}
void Pause()
{
PauseMenuUI.SetActive(true);
Time.timeScale = 0f;
GameIsPaused = true;
}
}
答案 0 :(得分:1)
正如我们在评论中所讨论的,PauseMenu
-脚本所附加的GameObject处于不活动状态。
无效的游戏对象将禁用其所有组件。
如果启用了MonoBehaviour,则每帧调用更新。 https://docs.unity3d.com/ScriptReference/MonoBehaviour.Update.html
因此您的更新代码未运行,因此从不检测何时按下Escape。