同时播放多个声音
验证环境
- 窗户
-
- 视窗 11
- 统一编辑器
-
- 2021.3.3f1
- 输入系统包
-
- 1.3.0
此提示的先决条件
作为此提示描述的前提,已预先进行了以下设置。
关于样品中包含的材料
音效是从以下网站借来的。
关于音频文件
可以使用 Unity 的标准功能播放以下音频文件格式: 请提前准备,因为它将在这些提示中使用。
- 波浪 (.wav)
- 奥格沃比斯 (.ogg)
- MPEG 第 3 层 (.mp3)
有关更多信息,请参阅官方 Unity 文档。
关于多个同时播放音频
在前面的提示中,我们使用AudioSource播放音频文件,但是当我们尝试发出单个声音和多个声音时,之前的声音消失了。 例如,如果游戏中有两个爆炸,当第二个爆炸产生声音效果时,第一个声音效果消失是不自然的。 本节介绍如何在彼此之上多次播放相同的声音。
同时播放音频的步骤
在这里,我将从我创建新项目的角度进行解释,但是如果您在一定程度上了解Unity,则可以仅剪切相关部分并记住它们。
这一次,每次单击按钮时都会播放音效。 创建 UI,如下所示。 细节是适当和好的。
通过将声音文件拖放到项目中来添加声音文件。
将音频源添加到层次结构。 在这种情况下,您不会将音频剪辑直接设置为音频源。
添加脚本。 ButtonEvent
将名称保留为 。
脚本如下所示:
using UnityEngine;
public class ButtonEvent : MonoBehaviour
{
[SerializeField] private AudioSource AudioSource;
<summary>音声データ。</summary>
[SerializeField] private AudioClip AudioClip;
public void OnClickPlay()
{
// オーディオを再生します
AudioSource.PlayOneShot(AudioClip);
}
}
AudioSource
将其视为用于控制音频的类,就像前面的提示一样。
AudioClip
是存储音频数据的类。 您可以在此处设置音频文件。
AudioSource.PlayOneShot
如果将其作为参数传递给该方法,则可以播放 AudioClip
音频数据。
通过此方法播放的音频是独立控制的。
如果再次调用此方法,它将作为与前一个声音分开的新语音播放。
因此,每次调用此方法时都可以再次播放声音。
将脚本附加到事件系统。
对于“音频源”,设置添加到层次结构的“音频源”。
对于“音频剪辑”,请从项目中设置音频文件。
最后,将该方法设置为按钮的单击事件。
运行游戏并单击按钮。 我认为音效会播放。 此外,如果您在播放过程中再次单击该按钮,将播放新声音而不会消失之前的声音。
AudioClip
这样,现在可以通过 .
这使得游戏可以在不自然地消失之前的声音的情况下进行游戏。
使用音频剪辑播放时的缺点
AudioClip
我能够通过使用 播放音频来相互播放音频,但相反,会出现以下缺点。
声音变得嘈杂
如您所见,如果您连续单击该按钮,声音会重叠,播放的谐波会变得越来越响亮。 例如,如果您想在游戏中攻击击中时播放声音效果, 如果在未采取任何措施的情况下同时发生多次命中,则可能会以异常音量播放。