Unity中实现在声音的叠加播放有两种情况:
1)2种及以上背景音乐的播放,此处直接使用两种及以上AudioSource分别控制即可;
2)背景音乐播放的同时,添加2种及以上的音效播放。此处可考虑使用PlayOnShot或PlayClipAtPoint方法。
下面主要针对第2)种情况进行总结及实现。
PlayOnShot方法与PlayClipAtPoint方法的区别:
PlayOnShot(AudioClip clip,float volumeScale= 1.0f)
参数 clip 为需要播放的声音片段(文件)
VolumeScale为声音播放的音量大小
作用 在需要播放某个较小片段的声音时,如按钮点击的音效,可使用此方法
特点 需要一个AudioSource对象audioSource,才可以通过audioSource.PlayOnShot(clip)使用此方法;可以通过对audioSource的控制,进而控制clip的播放、销毁。
PlayClipAtPoint(AudioClip clip, Vector3position, float volume = 1.0f)
参数 clip为需要播放的声音片段(文件)
position为需要插入声音的坐标点
volume为插入声音的音量大小
作用 在某处播放某个声音片段
特点 不需要实例化一个AudioSource对象即可使用,用法为AudioSource.PlayClipAtPoint(clip,position),同时在播放完成后自动消除音频源,但是无法在其播放阶段控制其销毁。