Appearance
音频系统
音频系统是什么
Unity 音频系统负责让游戏“发出声音”,比如:
- 背景音乐
- 按钮点击声
- 金币拾取声
- 攻击、爆炸、脚步声
- 风声、雨声、洞穴回声
- 角色语音
- 3D 空间里的远近和方向感
你先记住一句话:
音频系统 = AudioClip 声音资源 + AudioSource 播放器 + AudioListener 耳朵 + AudioMixer 分组混音最核心的声音流程
音频文件 wav / mp3 / ogg
↓
AudioClip
↓
AudioSource 播放
↓
AudioMixer 可选混音
↓
AudioListener 接收
↓
玩家听到声音1. AudioClip:声音资源
AudioClip 就是一段声音数据。
比如你把这些文件拖进 Unity:
coin.wav
click.mp3
battle_music.ogg
explosion.wavUnity 会把它们导入成 AudioClip。
但是注意: AudioClip 自己不会播放,它只是“声音文件”。真正负责播放的是 AudioSource。
2. AudioSource:播放器
AudioSource 是最重要的音频组件。
它通常挂在一个 GameObject 上:
Coin
Transform
AudioSource或者:
Enemy
Transform
Animator
AudioSource它负责控制:
- 播放哪个 AudioClip
- 音量多大
- 是否循环
- 是否一开始自动播放
- 是 2D 声音还是 3D 声音
- 声音远了是否变小
- 输出到哪个 AudioMixer 分组
常见参数你要重点认识:
| 参数 | 意思 |
|---|---|
| Audio Clip | 要播放的声音 |
| Play On Awake | 场景开始时自动播放 |
| Loop | 是否循环播放 |
| Volume | 音量 |
| Pitch | 音高,调高会变尖、调低会变沉 |
| Spatial Blend | 0 是 2D,1 是 3D |
| Min Distance | 3D 声音开始衰减前的近距离范围 |
| Max Distance | 超过后几乎听不见的远距离范围 |
| Output | 输出到 AudioListener 或 AudioMixer |
3. AudioListener:玩家的耳朵
AudioListener 可以理解成玩家的耳朵。
通常它挂在:
Main Camera
Camera
AudioListener也就是说,摄像机在哪里,玩家就从哪里听声音。
一个场景通常只应该有 一个 AudioListener。 如果有多个,Unity 可能会警告你;如果没有,声音就可能听不到。
4. 2D 声音和 3D 声音
这是新手必须搞懂的重点。
| 类型 | Spatial Blend | 特点 | 适合 |
|---|---|---|---|
| 2D 声音 | 0 | 不受距离影响 | UI 声、背景音乐、按钮声 |
| 3D 声音 | 1 | 受位置、方向、距离影响 | 脚步、爆炸、敌人叫声、环境物体声 |
举例:
按钮点击声:2D
背景音乐:2D
敌人脚步声:3D
远处爆炸声:3D
金币拾取提示:通常 2D
金币掉在场景里的声音:可以 3D5. AudioMixer:统一管理声音
AudioMixer 不是必须,但做正式项目很常用。
它可以把声音分组:
Master
├── Music
├── SFX
└── UI这样你就可以做设置界面:
主音量
音乐音量
音效音量
UI 音量而不是每个 AudioSource 一个一个改。
6. 脚本播放音效
短音效常用 PlayOneShot()。
using UnityEngine;
public class AudioExample : MonoBehaviour
{
public AudioClip coinClip;
private AudioSource source;
void Awake()
{
source = GetComponent<AudioSource>();
}
public void PlayCoin()
{
source.PlayOneShot(coinClip, 0.8f);
}
}理解这段就行:
coinClip 是声音资源
source 是播放器
PlayOneShot 是播放一次
0.8f 是音量比例学习顺序
你可以按这个顺序学:
- 导入一个音频文件
- 创建一个空物体
- 挂
AudioSource - 把
AudioClip拖进去 - 勾选
Play On Awake测试播放 - 学
Loop做背景音乐 - 学
PlayOneShot()做短音效 - 学
Spatial Blend区分 2D / 3D - 学
AudioMixer做音量设置 - 最后学混响、滤波、空间音频这些进阶内容