我想为我的Unity游戏做一个简单的暂停屏幕,但是,当我按下预定的按钮(p)时,它不显示,也没有设置为活动。
Here's an image of the script which i haven't finished yet since i just wanted to display the pause menu
代码摘录:
using UnityEngine
public class pauseManager : MonoBehaviour
{
public GameObject pauseScreen;
void Start()
{
pause();
}
void Update()
{
if(Input.GetKeyDown(KeyCode.P))
{
pause();
}
}
public void pause()
{
pauseScreen.SetActive(true);
}
}
我将控制暂停屏幕的gameobject设置为非活动状态,这样当游戏开始时,它就不会显示,而且我还在pauseScreen变量中使用了该gameobject。
1条答案
按热度按时间cgh8pdjw1#
看起来您正尝试使用更新功能在禁用的对象上检查键盘输入。这不起作用,因为更新不会在禁用的游戏对象上运行。为了解决这个问题,您需要创建一个始终处于活动状态的游戏对象来控制您的暂停屏幕。
以下是一个可能的修复方法:
1.创建一个可以随时运行update方法的单独的游戏对象,并在其中附加一个新的C#脚本
1.在新的C#脚本中,在脚本中创建对所创建的暂停屏幕对象GameObject的引用
1.现在,在这个脚本的update方法中,我们检查“P”键是否被按下。如果它被按下,我们将切换暂停屏幕对象的活动状态。
希望这对你有用。