程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

Unity(8)-开启或关闭背景音乐

发布于2021-06-07 20:47     阅读(1315)     评论(0)     点赞(19)     收藏(5)


前言

音乐播放时按下指定按键关闭音乐,未播放时按下按键开启音乐。
通过激活和关闭Autdio Source组件来实现。

Unity版本: 2019.4.26
Visual Studio版本: 2019

其他介绍

微软官方C#函数文档

Unity官方API文档(英文)

Unity官方API文档(中文)

Unity官方用户手册(中文)

Unity游戏蛮牛API文档(中文)

Unity教程-C语言中文网

上一篇笔记

Unity(7)-控制2D物体移动

一、项目结构

在这里插入图片描述

二、脚本

[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;//取消该组件
            }
            else//未播放背景音乐时
            {
                au.enabled = true;//激活该组件
            }
        }
    }

[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;//取消该组件
            }
            else//未播放背景音乐时
            {
                au.enabled = true;//激活该组件
            }
        }
    }
}

三、创建Audio Source

Hierarchy窗口中右键,选择AudioAudio Source

在这里插入图片描述

创建之后把它拖动到预制体文件夹

在这里插入图片描述

选择这个预制体,添加一个C#脚本

在这里插入图片描述

将自己的音乐文件拖动到Audio Source组件的AudioClip参数中

参数介绍
AudioClip当组件被激活时会播放
Output当组件被取消时会播放

在这里插入图片描述

如果场景中没有游戏对象时,需要把这个预制体移动到场景中
之后开始游戏就会有背景音乐了

在这里插入图片描述

原文链接:https://blog.csdn.net/smallfox233/article/details/117450438



所属网站分类: 技术文章 > 博客

作者:临摹

链接:http://www.phpheidong.com/blog/article/89642/938eee699092f01c759d/

来源:php黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

19 0
收藏该文
已收藏

评论内容:(最多支持255个字符)