当前位置: 首页 > article >正文

unity——Prejct3——背景音乐

1.音乐数据结构类

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.数据管理类

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.真实背景音乐类

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;
    }
}


http://www.kler.cn/a/508115.html

相关文章:

  • 阀井可燃气体监测仪,开启地下管网安全新篇章-旭华智能
  • Linux第二课:LinuxC高级 学习记录day04
  • 【25考研】西南交通大学软件工程复试攻略!
  • Jenkins与不同阶段测试的完美结合
  • 代码随想录算法训练营day31
  • MDX语言的数据库交互
  • 问题记录-Linux 下.sh脚本中变量不识别-2025-1-14
  • 【爬虫】使用 Scrapy 框架爬取豆瓣电影 Top 250 数据的完整教程
  • Open3D 手动裁剪点云【2025最新版】
  • 【25考研】西南交通大学计算机复试重点及经验分享!
  • Node.js - Cookie与Session详解
  • pc 端 TensorRT API 实现 YOLOv11 的 C++ 小白部署经验
  • WebSocket实现分布式的不同方案对比
  • 微服务网关,如何选择?
  • Oracle报错ORA-01078、LRM-00109
  • ElasticSearch常见知识点
  • React Native的现状与未来:从发展到展望
  • 以太网详解(五)GMII、RGMII、SGMII接口时序约束(Quartus 平台)
  • 【2024年华为OD机试】 (B卷,100分)- 响应报文时间(Java JS PythonC/C++)
  • openssl s_server源码剥离
  • C++ 之多线程相关总结
  • [深度学习]神经网络线性回归简易实例
  • 数据结构与算法学习笔记----中国剩余定理
  • GaussDB创建不同兼容模式的数据库
  • MMDetection学习系列(4)——Cascade R-CNN深度探索与实战指南
  • 进程的家园:探索 Linux 地址空间的奥秘