c# - 当我点击逃生时,暂停菜单不会激活
问题描述
我刚刚开始自学编码,并且一直在看 Brackey 的教程系列。我正在尝试创建一个暂停菜单,并且我已经跟随视频,但由于某种原因,当我点击转义时我无法激活菜单。我已经仔细检查了代码,与屏幕上的内容相比,它应该可以工作。有什么我想念的吗?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PauseMenu : MonoBehaviour
{
public static bool isGamePaused = false;
public GameObject pauseMenu;
void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
if (isGamePaused)
{
ResumeGame();
}
else
{
PauseGame();
}
}
}
void ResumeGame()
{
pauseMenu.SetActive(false);
Time.timeScale = 1f;
isGamePaused = false;
}
void PauseGame()
{
pauseMenu.SetActive(true);
Time.timeScale = 0f;
isGamePaused = true;
}
}
解决方案
现在我可以看到相关的代码和层次结构,我相信我看到了这个问题。在您的脚本中,您正在检查输入,Update()
仅当脚本组件所在的 GameObject 在层次结构中处于活动状态时才会调用该输入。
当您切换暂停时,您将激活和停用您在检查器中分配的游戏对象。作为您在具有脚本的 GameObject 中分配的对象,Update()
禁用后将永远不会调用。
您有几个选项,但最简单的一个是拖动面板pauseMenu
的引用作为在脚本中切换的引用对象,而不是Canvas
您当前拥有的对象。这样,Canvas
可以充当 的管理器,pauseMenu
在输入更改时切换它。
推荐阅读
- linux - 如何通过 Ansible 获取根设备?
- xsd - 一个 XSD 复杂元素中可以有多个指标吗?
- c# - 使用 XmlSerializer 从内存中的 XML 文件读取
- python - discord.py-rewrite wait_for() 取消
- python - 使用自定义函数的 Pandas 插值
- python - Python,文件输入和点击
- mysql - MySQL:如何从一个表中查找日期晚于另一个表中的日期的记录计数
- java - 通过 data prorety 使用 javax.persistence.criteria 从结果集中删除重复项
- parsing - 语言设计:解析表达式的评估如何在 Haskell 中工作?
- julia - Julia 使用 LsqFit 进行洛伦兹曲线拟合