文章目录
前言
音乐播放时按下指定按键关闭音乐,未播放时按下按键开启音乐。
通过激活和关闭Autdio Source
组件来实现。
Unity版本: 2019.4.26
Visual Studio版本: 2019
其他介绍
上一篇笔记
下一篇笔记
一、项目结构
二、脚本
[1]. 获取音频组件
背景音乐是通过
Audio Source
组件播放
先声明一个
AudioSource
类型的变量,并在游戏开始的时候获取预制体上的Audio Source
组件
private AudioSource au;//音频组件
// Start is called before the first frame update
void Start()
{
au = GetComponent<AudioSource>();//获取音频组件
}
[2]. 按键监听
当按下空格键时,我们才执行进一步的操作
KeyCode.Space
表示空格键,Input.GetKeyDown()
用来监听按下的按键
void Update()
{
if(Input.GetKeyDown(KeyCode.Space))//如果按下了空格键
{
}
}
[3]. 判断播放状态
对象名.isPlaying
是一个bool
类型的参数
音乐正在播放时值为true
,否则为false
void Update()
{
if(Input.GetKeyDown(KeyCode.Space))//如果按下了空格键
{
if (au.isPlaying)//正在播放背景音乐时
{
}
else//未播放背景音乐时
{
}
}
}
[4]. 开启或关闭音频
- 通过设置
对象名.enable
的值可以启用AudioSource
组件
处于开启状态可以播放音效, 左侧会有✔
- 开启音频时,不会继续之前的音乐进度,而是重新播放该音乐。
void Update()
{
if(Input.GetKeyDown(KeyCode.Space))//如果按下了空格键
{
if (au.isPlaying)//正在播放背景音乐时
{
au.enabled = false;//取消该组件
//方式二 au.Stop();
}
else//未播放背景音乐时
{
au.enabled = true;//激活该组件
//方式二 au.Play();
}
}
}
[5]. 全部代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Music : MonoBehaviour
{
private AudioSource au;//音频组件
// Start is called before the first frame update
void Start()
{
au = GetComponent<AudioSource>();//获取音频组件
}
// Update is called once per frame
void Update()
{
if(Input.GetKeyDown(KeyCode.Space))//如果按下了空格键
{
if (au.isPlaying)//正在播放背景音乐时
{
au.enabled = false;//取消该组件
//方式二 au.Stop();
}
else//未播放背景音乐时
{
au.enabled = true;//激活该组件
//方式二 au.Play();
}
}
}
}
三、创建Audio Source
在
Hierarchy
窗口中右键,选择Audio
的Audio Source
创建之后把它拖动到预制体文件夹
选择这个预制体,添加一个
C#
脚本
将自己的音乐文件拖动到
Audio Source
组件的AudioClip
参数中
参数 | 介绍 |
---|---|
AudioClip | 当组件被激活时会播放 |
Output | 当组件被取消时会播放 |
如果场景中没有游戏对象时,需要把这个预制体移动到场景中
之后开始游戏就会有背景音乐了