如何使用滑块纠正高音量下降

时间:2018-11-26 21:24:20

标签: c# visual-studio unity3d audio slider

大家好,这是我第一次使用音量滑块,这是Unity3D网站上3D射击者教程提供的。滑块可以工作,但是大约在滑块中间之后,该音量几乎无法感知。与我以前使用过的滑块相比,这种大小的滑块感觉下降得太快,并且我猜想可以使用一些三角函数来使下降更平滑,但是我对此并不熟悉他们呢。有谁知道纠正此问题的好方法?谢谢!这是我要的代码

编辑:我也找到了这个VolumeHandler脚本。我把它放在第一个之后

using UnityEngine;
using System.Collections;
using UnityEngine.Audio;

public class MixLevels : MonoBehaviour {

    public AudioMixer masterMixer;

    public void SetSfxLvl(float sfxLvl)
    {
        masterMixer.SetFloat("sfxVol", sfxLvl);
    }

    public void SetMusicLvl (float musicLvl)
    {
        masterMixer.SetFloat ("musicVol", musicLvl);
    }
}

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


public class VolumeHandler : MonoBehaviour {

    // Use this for initialization
    void Start () 
    {
        if(GameObject.Find("EffectsSlider"))
        GameObject.Find("EffectsSlider").GetComponent<Slider>().onValueChanged.AddListener(SetVolume);
    }

    void SetVolume(float volume)
    {
        GetComponent<AudioSource>().volume = volume;
    }

    void OnDestroy()
    {
        if(GameObject.Find("EffectsSlider"))
        GameObject.Find("EffectsSlider").GetComponent<Slider>().onValueChanged.RemoveListener(SetVolume);
    }
}

1 个答案:

答案 0 :(得分:-1)

如果大约在滑块的中间位置之后,音量已经几乎无法察觉,则意味着中间的值应该是滑块上的最大值。

选择滑块,然后在音量几乎无法察觉时将最大值更改为滑块中间的值。您也可以使用Slider.maxValue属性从代码中执行此操作。至于平滑度,请确保未在滑块上启用“整数”。如果启用,则滑块值将为int而不是float,这可能会导致问题。