问题
- 预制件的脚本播放声音
- 使用脚本中的多个声音替代播放Audio Source自身的音频
原因
将音频文件导入 Unity 编辑器中,会自动产生一个音频剪辑(AudioClip)。目的是:
- 将音频剪辑附加在声源上并在游戏中播放。
- 在脚本中控制在特定时间点触发播放音源中的声音。
解决方案
音频剪辑是实际播放的音频文件。声源负责控制音频的播放、暂停和一些其它的音频属性。声源需要作为游戏对象的组建附加在游戏对象上。游戏对象本身不做任何事。如果需要要让游戏对象播放声音,需要增加音源的组件。
如何新建一个音源:
- 将音频文件导入到Unity对象中,成为音频剪辑(AudioClips)。
- 从菜单中点选 GameObject点击 Create Empty。
- 在检视窗口中选定新创建的GameObject,点击Add Component按钮。
- 您可以搜索 Audio Source并点选, Audio Source将在检视窗口中作为组件自动添加到 GameObject。
- 把AudioClip(音频剪辑)设置到Audio Source(音频源)上
Audio Source正确设置之后,有两种方法可以触发声音的播放:
- 第一种方法是不使用AudioClip Variable(音频剪辑变量),而是将Audio Source(音频源)组件附加到GameObject(游戏对象)(或者选定的对象),然后将AudioClip(音频剪辑)拖拽到Audio Source(音频源)组件中。最后我们通过在当前对象的脚本中调用audio.Play()来开始播放音乐。
- 第二种播放音频的方法是调用 AudioSource.PlayClipAtPoint() 这样会在当前脚本所在的3D世界中,玩家对象所在的位置开始播放声音。
更多信息
调用audio.Play(); 的示例脚本请参考 这里的文档
调用AudioSource.PlayClipAtPoint();的示例脚本请参考这里的文档