首页/ 第 11 章 · 音频系统/ 第 174 课
LESSON 174 · 音频系统

AudioListener 监听器

AudioListener 已掌握。下一课学 3D 空间音频。

⏱ 约 11 分钟📊 难度:入门🗂 第 11 章 · 音频系统📍 第 174 / 300 课
课程进度
174 / 300

🎯本节学习目标

  • 理解 AudioListener 作用
  • 掌握位置影响
  • 避免重复监听器

🚀课程导读

所有声音最终都“传”到 AudioListener。它是场景里唯一的“耳朵”,本课讲清楚它的规矩。

AudioListener 基础

一只“耳朵”。

  1. 【作用】AudioListener 代表“听者”,接收场景中所有 AudioSource 的声音。
  2. 【位置】Listener 的位置影响 3D 音效的听感(离得近大声、远小声)。
  3. 【默认】Main Camera 自带 AudioListener,所以相机=听者。
  4. 【唯一性】一个场景只能有一个激活的 AudioListener,多个会报警告并可能异常。
  5. 【移除】若场景有多个带 Listener 的对象(如切换了相机),保留一个其余删除/禁用。
  6. 【2D 音效】Spatial Blend=0 的 2D 音效不受 Listener 位置影响(全屏音量)。
  7. 【3D 音效】受 Listener 距离影响(第 175 课)。
  8. 【静音】Listener 本身没有音量属性,静音通过各 Source 或 AudioMixer。
  9. 【常见错误】场景里有多个 AudioListener 报 warning:AudioListener in scene ... are disabled/There are 2 audio listeners
  10. 【修复】确保只有一个启用的 Listener。
“两个耳朵”是常见警告:切场景/多相机时确认只留一个 AudioListener。

实战注意事项

正确使用。

  1. 【方案】把 AudioListener 放在“玩家的耳朵”位置:通常相机自带即可。
  2. 【多相机】若你用了多个相机,只保留一个带 Listener,或在代码里动态切换:
  3. if (useMainCam) mainCam.GetComponent<AudioListener>().enabled = true;
  4. else { mainCam.GetComponent<AudioListener>().enabled = false; otherCam.GetComponent<AudioListener>().enabled = true; }
  5. 【头顶听者】第一人称时 Listener 在相机 = 玩家耳朵,3D 音效方向正确。
  6. 【第三人称】Listener 在相机(离角色较远),3D 音效按“相机距离”衰减(可接受)。
  7. 【角色位置优化】若要按“角色耳朵”衰减,把 Listener 放到角色头部子物体(进阶)。
  8. 【测试】放一个 3D 音效的 AudioSource,播放后移动相机/Listener,听音量随距离变化。
  9. 【注意】移动 Listener 会改变所有 3D 音效听感,谨慎调整。
  10. 【验证】Console 无“多个 AudioListener”警告。
AudioListener 就一句:场景唯一、放在“听者”位置。其余交给 3D 音效。

常见错误与排查

错误:警告:There are 2 audio listeners?
原因:场景有多个启用的 Listener
解决:禁用/删除多余的,只保留一个。

动手练习

课后小任务(做出来才算真的学会)

  • 确认场景只有唯一 AudioListener
  • 把 Listener 移到不同位置感受 3D 音效变化
  • 学会多相机时的 Listener 切换

本节小结

AudioListener 已掌握。下一课学 3D 空间音频。

完成打卡后,主站会实时更新你的学习进度 🎯

← 上一课播放音效与随机音调