c# - 如何使用 slider 纠正高音量下降

标签 c# visual-studio unity3d audio slider

这是我第一次使用音量 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/

相关文章:

android - Unity Firebase 插件在 Android logcat 中抛出 "DllNotFoundException: App"并卡在此时

c# - 二进制插入排序如何工作?

c# - 从 Visual Studio 启动时,WPF 应用程序加载初始窗口的速度非常慢

c# - 在 C# 中,如何通过串行端口通过 Kermit 进行通信?

c# - 突出显示方法定义

visual-studio - 更新到 Visual Studio 2017 版本 15.4

c# - Unity - 为我的按钮添加延迟

c# - Unity3d 上 ScriptableObject 的自定义图标

c# - 如何在 Microsoft Visual Studio 2012 中使用本地数据库文件添加/编辑/检索数据

c# - C# 中的 LenB 替代品