播放、暂停或停止单个声音效果
验证环境
- 窗户
-
- 视窗 11
- 统一编辑器
-
- 2021.3.3f1
- 输入系统包
-
- 1.3.0
此提示的先决条件
作为此提示描述的前提,已预先进行了以下设置。
关于样品中包含的材料
音效是从以下网站借来的。
关于音频文件
可以使用 Unity 的标准功能播放以下音频文件格式: 请提前准备,因为它将在这些提示中使用。
- 波浪 (.wav)
- 奥格沃比斯 (.ogg)
- MPEG 第 3 层 (.mp3)
有关更多信息,请参阅官方 Unity 文档。
关于播放声音效果
有几种播放音效的方法,但在这里我们想引导您完成一种在使用标准功能时播放它们的简单方法。
内容是排列一个按钮,并通过单击该按钮来播放、暂停和停止。 在实际游戏中,您可以实现按钮以外的相同过程。
首先,放置一个按钮来播放如图所示的音效。
通过将准备好的声音文件拖放到项目中来添加该文件。
接下来,将“音频源”添加到层次结构中。
选择创建的音频源时,“音频源”组件具有一个音频剪辑,您可以将项目中的音频文件拖放到其中以进行配置。
顺便说一句,如果您按原样启动游戏,您设置的音效会突然播放。 这是因为选中了“在游戏开始时播放”。 声音效果不太可能突然播放,因此请取消选中此检查。
接下来,创建一个脚本。 SoundPlayer
将名称保留为 。
脚本如下所示:
using UnityEngine;
public class SoundPlayer : MonoBehaviour
{
[SerializeField] private AudioSource AudioSource;
public void OnClickPlay()
{
// オーディオを再生します
AudioSource.Play();
}
public void OnClickPause()
{
// オーディオを一時停止します
AudioSource.Pause();
}
public void OnClickStop()
{
// オーディオを停止します
AudioSource.Stop();
}
}
AudioSource
稍后将从编辑器中设置。 此音频源是具有先前设置的音效的音频源。
AudioSource
、 和方法,因此您可以分别播放、暂停和Play
Pause
Stop
停止。
您可以将脚本附加到音频源,但在本例中,您需要将其附加到事件系统。 确保脚本填充了之前创建的音频源。
现在将每个方法分配给三个按钮的单击事件。
完成后,运行游戏并查看音效是否播放。
播放、暂停和停止是常用术语,因此您无需详细编写它们,但我认为它们的工作原理如下。
- 单击播放按钮时,音效仅播放一次并播放到最后。
- 在播放过程中,单击暂停按钮以停止播放声音
- 当您在暂停时单击播放按钮时,声音将从停止位置播放。
- 在播放过程中单击停止按钮以停止播放声音
- 停止播放时单击播放按钮以从头开始播放
- 在暂停期间单击停止按钮将释放暂停的位置,下次您玩游戏时,它将从头开始。
- 如果在播放过程中单击播放按钮,则会停止当前播放的声音并从头开始播放。
单独使用音频源的缺点
有一个解决方法,但此提示具有以下缺点。 我们将在另一个提示中介绍这些解决方案。
不能同时播放两个或多个相同的声音
您可以通过多次按下播放按钮来检查这一点,但是当您播放新声音时,以前的声音会消失。 说到缺点,这是一个缺点,但相反,如果你在彼此之上播放相同的声音,音量会非常响亮,所以从某种意义上说,这是一个优势,它可以阻止它。 但是,之前的声音仍然会消失,因此根据声音的类型,它会不自然。
您必须拥有与要播放的声音类型一样多的音频源
由于在音频源中只能设置一个音频剪辑,因此您需要提供音频源,因为您需要尽可能多的声音。 您也可以只准备一个音频源,并在播放其他声音时更改音频剪辑。 这是不自然的,因为由于无法同时播放之前写入的两个或多个相同声音的问题,先前的声音消失了。