问题描述
当我暂停游戏时,音频也会暂停,但是我创建了一个“返回菜单”按钮,该按钮进入主菜单,但是当我再次点击开始并开始运行游戏时,我的音频消失了,我听不到任何声音。
这是我的代码:
using UnityEngine; using UnityEngine.SceneManagement;
public class pausemenu : MonoBehaviour { public GameObject pauseMenu;
public bool isPaused;
void Start()
{
pauseMenu.SetActive(false);
}
// Update is called once per frame
void Update()
{
if(Input.GetKeyDown(KeyCode.Escape))
{
if(isPaused)
{
ResumeGame();
}
else
{
PauseGame();
}
}
}
public void PauseGame()
{
pauseMenu.SetActive(true);
Time.timeScale = 0f;
isPaused = true;
AudioListener.pause = true;
}
public void ResumeGame()
{
pauseMenu.SetActive(false);
Time.timeScale = 1f;
isPaused = false;
AudioListener.pause = false;
}
public void GoToMainMenu()
{
Time.timeScale = 1f;
SceneManager.LoadScene("menu1");
}
public void QuitTheGame()
{
Application.Quit();
}
}
解决方法
在PauseGame()函数中,您将AudioListener.pause设置为true。因此,在GoToMainMenu()函数中,将AudioListener.pause设置为false。
,如果您暂停游戏并致电PauseGame()
,AudioListener.pause
会设置为true
。
如果继续,则可以正确地将AudioListener.pause
设置为false
。
但是,如果您停止游戏(进入某个主菜单)并开始一个新的游戏(或上一个游戏),则由于暂停菜单,静态布尔AudioListener.pause
仍为false
即使您的启动设置导致开始新游戏时调用pausemenu.Start()
,这也不会影响AudioListener.pause
。您必须显式调用pausemenu.ResumeGame()
。