声音系统 Audio Source
目前正跟随官网 Junior Programmer 课程学习。
前一段时间学习到的一些内容,将分别纪要。
1.声音系统
在 Junior Programmer 课程的第 3.4 章节左右,开始学习 Unity 的声音系统。
附着于游戏对象之上的 声音系统, 是通过叫做 Audio Listerner 和 Audio Source 的组件来实现的。

其中,Audio Listerner 组件让我们听到声音;而 Audio Source 组件则负责管理播放的声音资源。
在课程中,我们在 Audio Source 组件上,设置:
- 拖放 BGM 声音资源文件至
AudioClip; - 令 BGM 在游戏开始时自动播放,即
Play On Awake复选框勾选; - 令 BGM 循环播放,即
Loop复选框勾选; - 调整 BGM 音量,即
Volume滑块调整至 0.6 ;
随后我们使用代码来控制 音效 播放;
2.声音系统调用
顺序是:
- 首先声明一个音效资源变量、将其与对应的声音资源关联;
- 随后获取相应的
Audio Source组件;记得要给对应的 游戏对象 添加Audio Source组件; - 最后,在需要播放声音时,用
PlayOneShot()方法播放声音;
示意如下:
1 | using System.Collections; |
以上。
3.深入了解
以下是 Unity Document 中对 AudioSource 的描述。
AudioSource 是音频源在 3D 中的表示。
AudioSource 附加到 GameObject,用于在 3D 环境中播放声音。 要播放 3D 声音,您还需要一个 AudioListener。 音频监听器通常附加到您要使用的摄像机。 声音以 3D 还是 2D 方式播放由 AudioImporter 设置决定。
您可以使用 Play、Pause 和 Stop 播放单个音频剪辑。 也可以使用 volume 属性在播放时调整其音量,或使用 time 进行搜寻。 使用 PlayOneShot 可以在一个 AudioSource 上播放多个声音。 使用 PlayClipAtPoint 可以在 3D 空间中的某个静态位置播放剪辑。
另请参阅:AudioListener、AudioClip、AudioSource 组件。
3.1 常用变量
常用变量说明如下:
| 变量 | 说明 |
|---|---|
| clip | 要播放的默认 AudioClip。 |
| isPlaying | 当前正在播放该 clip 吗?(只读) |
| loop | 是否循环播放该音频剪辑? |
| maxDistance | (对数衰减)MaxDistance 为声音停止衰减的距离。 |
| minDistance | 在最小距离内,AudioSource 将停止增大音量。 |
| mute | 使 AudioSource 静音/取消静音。静音时将音量设置为 0,取消静音则恢复原来的音量。 |
| pitch | 音频源的音高。 |
| playOnAwake | 如果设置为 true,音频源将在唤醒时自动开始播放。 |
| priority | 设置 AudioSource 的优先级。 |
| time | 播放位置(以秒为单位)。 |
| volume | 音频源的音量(0.0 到 1.0)。 |
有大量删减;
3.2 常用函数
以下:
| 公共函数 | 说明 |
|---|---|
| Pause | 暂停播放 clip。 |
| Play | 播放 clip。 |
| PlayDelayed | 按照指定的延时(以秒为单位)播放 clip。建议用户使用该函数代替旧的 Play(delay) 函数,Play(delay) 函数接受以样本(参考采样率为 44.1 kHz)数为单位指定的延时作为参数。 |
| PlayOneShot | 播放 AudioClip,并根据 volumeScale 调整 AudioSource 音量。 |
| PlayScheduled | 在 AudioSettings.dspTime 读取的绝对时间轴上的特定时间播放 clip。 |
| Stop | 停止播放 clip。 |
| UnPause | 恢复播放该 AudioSource。 |
有大量删减;
3.3 静态函数
静态函数只有1个,以下:
| 函数 | 说明 |
|---|---|
| PlayClipAtPoint | 在世界空间中的给定位置播放 AudioClip。 |
3.4 继承成员
暂略。
注
在 Unity Document 中对 AudioSource 的描述比较少,但有大量类成员说明,此处并未涉及。
详细了解可参考以下路径:
以上。