unity——Prejct3——背景音乐

1.音乐数据结构类

cs 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

//音乐数据结构类
public class MusicData 
{
    //背景音乐 音效 开关
    public bool musicOpen = true;
    public bool soundOpen = true;

    //背景音乐 音效 大小
    public float musicValue = 0.2f;
    public float soundValue = 0.2f;
}

2.数据管理类

cs 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

// 数据管理类
public class GameDataMgr
{
    private static GameDataMgr instance = new GameDataMgr();

    public static GameDataMgr Instance => instance;

    //音乐 音效 相关数据
    public MusicData musicData;

    private GameDataMgr()
    {
        //初始化默认数据 如果第一次进入游戏 Json会直接默认数据
        musicData = JsonMgr.Instance.LoadData<MusicData>("MusicData");
    }

    /// <summary>
    /// 存储音乐 音效数据
    /// </summary>
    public void SaveMusicData()
    {
        JsonMgr.Instance.SaveData(musicData, "MusicData");
    }
}

3.真实背景音乐类

cs 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BKMusic : MonoBehaviour
{
    private static BKMusic instance;
    public static BKMusic Instance => instance;

    private AudioSource bkSource;

    // Start is called before the first frame update
    void Awake()
    {
        instance = this;
        bkSource = this.GetComponent<AudioSource>();

        //通过真正的音乐数据来设置背景音乐的数据
        MusicData data = JsonMgr.Instance.LoadData<MusicData>("MusicData");

        SetIsOpen(data.musicOpen);
        ChangeValue(data.musicValue);
    }

    //开关背景音乐
    public void SetIsOpen(bool isOpen)
    {
        bkSource.mute = !isOpen;
    }

    //调整背景音乐大小
    public void ChangeValue(float v)
    {
        bkSource.volume = v;
    }
}
相关推荐
缘友一世几秒前
Java 8 Stream API
java
计算机学姐1 分钟前
基于SpringBoot的健身房管理系统
java·vue.js·spring boot·后端·mysql·spring·mybatis
爱上语文21 分钟前
MyBatis实现数据库的CRUD
java·开发语言·数据库·mybatis
qq_4336184433 分钟前
c++ chrono 操作 以及c语言的时间操作
开发语言·c++
Mistra丶41 分钟前
A股微型低频套利交易-Java版本
java·量化交易·a股·自动交易·做t·套利
liynet44 分钟前
Goland项目内引入字符串标红的解决办法
java·服务器·前端
BinaryBardC1 小时前
Go语言的文件操作
开发语言·后端·golang
alden_ygq1 小时前
Go os/exec 使用实践
开发语言·数据库·golang
bing_1581 小时前
Spring Boot 中使用 ShardingSphere-Proxy
java·spring boot·后端
十二同学啊1 小时前
Spring Boot 整合 Knife4j:打造更优雅的 API 文档
java·spring boot·后端