播放、暂停、停止和循环播放背景音乐
验证环境
- 窗户
-
- 视窗 11
- 统一编辑器
-
- 2021.3.3f1
- 输入系统包
-
- 1.3.0
此提示的先决条件
作为此提示描述的前提,已预先进行了以下设置。
关于样品中包含的材料
BGM是从以下网站借来的。
关于音频文件
可以使用 Unity 的标准功能播放以下音频文件格式: 请提前准备,因为它将在这些提示中使用。
- 奥格沃比斯 (.ogg)
- MPEG 第 3 层 (.mp3)
有关更多信息,请参阅官方 Unity 文档。
关于背景音乐播放
有几种播放背景音乐的方法,但在这里我们想解释如何在使用标准功能时以简单的方式播放它。
内容是排列一个按钮,并通过单击该按钮来播放、暂停和停止。 在实际游戏中,您可以实现按钮以外的相同过程。
首先,放置一个按钮来播放BGM,如图所示。
通过将准备好的音频文件拖放到项目中来添加该文件。
接下来,将“音频源”添加到层次结构中。
选择创建的音频源时,“音频源”组件具有一个音频剪辑,您可以将项目中的音频文件拖放到其中以进行配置。
顺便说一句,如果您按原样启动游戏,您设置的 BGM 会突然播放。 这是因为选中了“在游戏开始时播放”。 如果您想在场景开始时立即播放它,则没有问题,但这次它不会立即播放,因此请取消选中此检查。
接下来,创建一个脚本。 MusicPlayer
将名称保留为 。
脚本如下所示:
using UnityEngine;
public class MusicPlayer : 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
停止。
您可以将脚本附加到音频源,但在本例中,您需要将其附加到事件系统。 确保脚本填充了之前创建的音频源。
现在将每个方法分配给三个按钮的单击事件。
设置完成后,运行游戏并查看背景音乐是否播放。
播放、暂停和停止是常用术语,因此您无需详细编写它们,但我认为它们的工作原理如下。
- 单击播放按钮时,背景音乐仅播放一次并播放到最后。
- 在播放过程中,单击暂停按钮以停止播放声音
- 当您在暂停时单击播放按钮时,声音将从停止位置播放。
- 在播放过程中单击停止按钮以停止播放声音
- 停止播放时单击播放按钮以从头开始播放
- 在暂停期间单击停止按钮将释放暂停的位置,下次您玩游戏时,它将从头开始。
- 如果在播放过程中单击播放按钮,则会停止当前播放的声音并从头开始播放。
循环播放
默认情况下,它播放背景音乐,并在播放到最后时自动停止。 如果要循环播放背景音乐并继续播放,请检查音频源组件中的“循环”,它将继续重复播放,直到您按下停止按钮。
音效播放内容相同
如果您已经看到了音效方面的提示,您可能已经注意到音效和背景音乐可以使用相同的设置播放。 根据游戏框架的不同,音效和背景音乐的处理可能是分开的,但 Unity 允许您使用相同的处理方式播放两者。
关于窗口停用时背景音乐暂停的现象
默认情况下,当其他窗口处于活动状态且游戏屏幕停用时,游戏本身将暂停。 与此同时,背景音乐的播放也被暂停。
为避免这种情况,您可以在项目设置中将其设置为在后台运行,以便背景音乐不会中断。