13.背景音乐

13.开始场景-背景音乐


13.1 知识点

创建一个背景音乐空物体,添加音乐源组件

在Unity中,按照以下步骤创建一个背景音乐空物体并添加音乐源组件:

  1. 在场景中创建一个空物体。
  2. 选中这个空物体,在Inspector面板中点击“Add Component”按钮,然后搜索并添加“Audio Source”组件。

创建背景音乐脚本,实现单例,挂载到背景音乐空物体上。初始化的时候获取背景音乐空物体上的音乐源组件。添加具体改变背景音乐的大小和开关背景音乐的方法,在初始化的时候调用。

//背景音乐
public class BKMusic : MonoBehaviour
{
    //实现单例
    private static BKMusic instance;
    public static BKMusic Instance => instance;

    private AudioSource audioSource;

    void Awake()
    {
        //得到自己
        instance = this;
        //得到自己依附的游戏对象上挂载的音频源脚本
        audioSource = GetComponent<AudioSource>();
        //初始化时 把大小和开关根据数据进行设置
        ChangeValue(GameDataMgr.Instance.musicData.bkValue);
        ChangeOpen(GameDataMgr.Instance.musicData.isOpenBK);
    }

    /// <summary>
    /// 改变背景音乐大小
    /// </summary>
    /// <param name="value"></param>
    public void ChangeValue(float value)
    {
        //音量设置
        audioSource.volume = value;
    }

    /// <summary>
    /// 开关背景音乐
    /// </summary>
    /// <param name="isOpen"></param>
    public void ChangeOpen(bool isOpen)
    {
        //如果开启 就是不静音
        //没有开启 就是 静音
        audioSource.mute = !isOpen;
    }
}

在游戏数据管理类的调用具体改变音乐大小和开关的方法

//开启或者关闭背景音乐
public void OpenOrCloseBKMusic(bool isOpen)
{
    musicData.isOpenBK = isOpen;

    //在这里控制场景上的背景音乐开关
    BKMusic.Instance.ChangeOpen(isOpen);

    //存储改变后的数据
    PlayerPrefsDataMgr.Instance.SaveData(musicData, "Music");
}

//改变背景音乐大小
public void ChangeBKValue(float value)
{
    musicData.bkValue = value;

    //在这里控制场景上的背景音乐大小
    BKMusic.Instance.ChangeValue(value);

    //存储改变后的数据
    PlayerPrefsDataMgr.Instance.SaveData(musicData, "Music");
}

13.2 知识点代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

//背景音乐
public class BKMusic : MonoBehaviour
{
    //实现单例

    private static BKMusic instance;
    public static BKMusic Instance => instance;

    private AudioSource audioSource;

    void Awake()
    {
        //得到自己
        instance = this;
        //得到自己依附的游戏对象上 挂载的 音频源脚本
        audioSource = this.GetComponent<AudioSource>();
        //初始化时 把大小和开关 根据数据 进行设置
        ChangeValue(GameDataMgr.Instance.musicData.bkValue);
        ChangeOpen(GameDataMgr.Instance.musicData.isOpenBK);
    }

    /// <summary>
    /// 改变背景音乐大小
    /// </summary>
    /// <param name="value"></param>
    public void ChangeValue(float value)
    {
        //音量设置
        audioSource.volume = value;
    }

    /// <summary>
    /// 开关背景音乐
    /// </summary>
    /// <param name="isOpen"></param>
    public void ChangeOpen(bool isOpen)
    {
        //如果开启 就是不静音
        //没有开启 就是 静音
        audioSource.mute = !isOpen;
    }
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏