繁体   English   中英

Unity 5音频音量滑块

[英]Unity 5 Audio Volume Slider

我试图创建一个可以在Unity 5中用于音量控制的滑块,但是音量不会改变。

我的游戏对象被称为MainMusicPlayer(用于音频源)和“音量滑块”(用于滑块)

我将发布整个脚本,因为这将是有益的。

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class AudioSettingsScript : MonoBehaviour 
{

    public const float DefaultVolumeLevel = 1f;

    Slider volumeSlider;

    void Start() 
    { 
        GameObject temp = GameObject.Find("Volume Slider");
        if (temp != null)
        {
            volumeSlider = temp.GetComponent<Slider>();

            if (volumeSlider != null)
            {
                volumeSlider.normalizedValue = PlayerPrefs.HasKey("VolumeLevel") ? PlayerPrefs.GetFloat("VolumeLevel") : DefaultVolumeLevel;
            }
            else
            {
                Debug.LogError("[" + temp.name + "] - Does not contain a Slider Component!");
            }

        }
        else
        {
        Debug.LogError("Could not find an active GameObject named Volume Slider!");
    }

    }
    public void OnApply()
    {
        PlayerPrefs.SetFloat("VolumeLevel", volumeSlider.normalizedValue);
    }
}

代码的对齐方式是统一的,但是在这里不喜欢

Unity中的主音量控件由AudioListener拥有

您的代码正在更新保存的值PlayerPrefs称为VolumeLevel ,但它实际上并没有告诉团结来改变音量的任何一点。 要全局执行此操作(即一次处理所有声音),可以使用volumeSlider.normalizedValue的值更新AudioListener.volume 默认情况下,音量设置为1.0 ,因此您只能使声音更安静-如果播放器想要的音量大于默认音量,则需要将扬声器调高。

因此,在您Start读取保存的值的Start方法中,将其应用于AudioListener.volume和滑块,并在OnApply方法中将新值应用于AudioListener.volume

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM