c# - 从 pausescreen C# 到菜单
问题描述
在这段代码中,我确实制作了一个暂停菜单,其中包含一些按钮,如恢复和菜单。如果我点击菜单,我会进入菜单,但时间仍然冻结,如果我再次按 Escape,我可以继续玩游戏。为什么这样做。如果您按菜单 i 进入菜单并激活 Resume 方法。如果我只是按恢复,恢复方法可以正常工作,但是当我单击菜单时,该方法不起作用。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class PauseMenu : MonoBehaviour
{
public static bool GameIsPaused = false;
public GameObject pauseMenuUI;
void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
if (GameIsPaused)
{
Resume();
}
else
{
Pause();
}
}
}
public void Menu()
{
Resume();
SceneManager.LoadScene(0);
}
public void Resume()
{
pauseMenuUI.SetActive(false);
Time.timeScale = 1f;
GameIsPaused = false;
}
public void Pause()
{
pauseMenuUI.SetActive(true);
Time.timeScale = 0f;
GameIsPaused = true;
}
}
当我单击菜单时,我尝试将服务器时间刻度恢复正常,但时间刻度仍然为 0,因此您必须再次进入暂停菜单才能单击恢复,并且时间刻度再次正确,但这不是它应该如何工作的。
解决方案
代码应该可以工作,但是您是否将脚本设置为暂停菜单画布?如果是这样,您还需要OnClick()
在检查器中的每个按钮上设置一个事件。
希望这会奏效!