13.开始场景-背景音乐
13.1 知识点
创建一个背景音乐空物体,添加音乐源组件
在Unity中,按照以下步骤创建一个背景音乐空物体并添加音乐源组件:
- 在场景中创建一个空物体。
- 选中这个空物体,在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