大家好,这是我第一次使用音量滑块,这是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);
}
}
答案 0 :(得分:-1)
如果大约在滑块的中间位置之后,音量已经几乎无法察觉,则意味着中间的值应该是滑块上的最大值。
选择滑块,然后在音量几乎无法察觉时将最大值更改为滑块中间的值。您也可以使用Slider.maxValue
属性从代码中执行此操作。至于平滑度,请确保未在滑块上启用“整数”。如果启用,则滑块值将为int
而不是float
,这可能会导致问题。