Unity Audio Mixer 实战:从分组到 Ducking 的全链路调音方案
开场凌晨三点,BGM 突然盖过了对白,玩家在评论区疯狂刷"听不清"。你翻遍项目,找到 47 个 AudioSource,每个都挂着各自的 volume 字段,调一个全局音量要改十几个预制体。这就是没有 Audio Mixer 的典型翻车现场——声音参数散落在代码各处,像一盘散沙。Audio Mixer 相当于给项目接上一台数字调音台:所有声音汇入总线(Bus),按分类独立调参,还能用快照瞬切氛围。但只会拖面板远远不够——参数写进 Mixer 之后引擎内部到底怎么走?为什么音量要用 dB 而不是线性值?Ducking 为什么很多人会配错?本篇从信号流底层拆到工程落地,把这些问题一次讲透。一、引擎内部:声音是怎么流到喇叭的1.1 信号路径:一张有向无环图Audio Mixer 在引擎内部是一张音频处理图(DSP Graph 的雏形)。每个 AudioSource 输出的 PCM 数据流,按下面的路径流动:AudioSource(解码 + 声像/多普勒) ↓ outputAudioMixerGroup 指定入口 Group A(效果链:Attenuation → Lowpass → ...) ↓ 汇入父 Group Group B(效果链) ↓ …逐级向上… Master Group ↓ 音频输出设备理解这张图,后面所有机制都能对上号:Group 是节点,效果是挂在节点上的处理单元。一个 Group 的输出会混进父 Group 的输入,所以 Master 的音量天然是"总闸"。/