在AudioListener.pause = true之后暂停菜单音乐。

时间:2019-05-15 22:31:27

标签: unity3d

当我按下ESC画布时,我有一个带有音乐和一些按钮的soundfx的暂停菜单画布,游戏对象变为活动状态,并将timescale设置为0;并调用AudioListener.pause = true;避免玩游戏中的声音。

但是当我调用AudioListener.pause = true时;暂停菜单音乐和按钮的soundfx也无法播放。

Pause = true;

            AudioListener.pause = true;

            transform.GetChild(0).gameObject.SetActive(true);



            Time.timeScale = 0;

            Time.fixedDeltaTime = 0.02F * Time.timeScale;

我试图向新画布添加另一个音频侦听器,但它也无法正常工作。

1 个答案:

答案 0 :(得分:1)

我用该代码固定了解决方案;

void PauseAllSources()
    {
        AudioSource[] allAudioSources = FindObjectsOfType<AudioSource>();
        foreach(AudioSource a in allAudioSources)
        {
            if (a.isActiveAndEnabled == true)
            {
                if (a.isPlaying) a.Pause();
                else a.UnPause();
            }
        }

    }

AudioListener.pause = true;替换为PauseAllSources();