这是我第一次使用音量 slider ,它是 Unity3D 网站上的 3D 射击游戏教程中提供的 slider 。 slider 可以工作,但在 slider 的中间位置之后,音量已经几乎感觉不到了。与我习惯使用的 slider 相比,这种尺寸的 slider 感觉它下降得太快了,我猜我可以使用一些触发函数来使下降更平滑,但我还不够熟悉他们呢。有谁知道纠正这个问题的好方法?谢谢!这是我得到的代码
编辑:我也找到了这个 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);
}
}
最佳答案
如果在 slider 的中间位置之后,音量已经几乎无法察觉,这意味着中间的值应该是 slider 上的最大值。
选择 slider 并将最大值更改为音量变得几乎不可察觉时 slider 中间的值。您也可以使用 Slider.maxValue
属性从代码中执行此操作。至于平滑度,请确保未在 slider 上启用“整数”。如果启用,则 slider 值将为 int
而不是 float
,这可能会导致问题。
关于c# - 如何使用 slider 纠正高音量下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53489291/