c# - 如何在统一C#中永远使当前场景静音

标签 c# audio unity3d

切换开/关静音音量,这是我的功能:

public    void Mm(bool vv)
     {
         if (vv)
         {
             AudioListener.volume = 0;
         }
         else 
         {
             AudioListener.volume = 1;
         }
     }

一切正常,但问题是:当我静音并转到另一个场景时,再次回到该场景时音量不静音!

最佳答案

如下创建一个SoundManager脚本,并将其放在您的当前场景中:

public class SoundManager : MonoBehaviour
{
    void OnEnable()
    {
        AudioListener.volume = PlayerPrefs.GetFloat("volume",0);
    }

    void OnDisable()
    {
        AudioListener.volume = 1;
    }

    public void Mute(bool vv)
    {
        if (vv)
        {
            AudioListener.volume = 0;
        }
        else 
        {
            AudioListener.volume = 1;
        }
        PlayerPrefs.SetFloat("volume",AudioListener.volume);
        PlayerPrefs.Save()
    }
}

关于c# - 如何在统一C#中永远使当前场景静音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39288055/

相关文章:

c# - 从 ContextMenu 实现 "Rename"

audio - 将音频样本从时域转换为频域

android - 更新后需要清除数据,否则应用程序将无法运行

ios - 我们的 iOS 游戏刚刚因为没有生命周期商品的恢复机制而被拒绝

c# - 我自己的 .dll 中的 MySql.Data 引用仅在开发计算机上起作用,在最终用户的计算机上不起作用

c# - 直接调用电话 Xamarin.Forms

c# - 将 AsyncCompletedEventHandler 设置为类外的方法

java - 如何将字节拆分/合并为音频?

python - 在Pygame中播放音乐会导致断言失败消息

c# - 留在移动平台上