Unity 音频管理器SoundManager(一)

本文档介绍了Unity中用于音频管理的SoundManager类,包括背景音乐和音效的播放、暂停、停止、音量调整等功能。SoundManager通过初始化AudioSource列表,实现了对多个音效的管理和控制,同时提供了静音、设置音量比例等实用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;
[LuaCallCSharp]
public class SoundManager : MonoBehaviour
{
    private float bgmVolumScale = 1f; //背景音乐声音大小比例
    private float effVolumScale = 0.5f; //音效声音大小比例
    public List<AudioSource> audioSourceList = new List<AudioSource>();  //音效播放器
    private AudioSource musicAudio;   //背景音乐播放器
    GameObject thisObj;
    Transform thisTrans;
    // Start is called before the first frame update
    public static SoundManager Init()
    {
        GameObject obj = new GameObject("SoundManager");
        SoundManager soundManager = obj.AddComponent<SoundManager>();
        obj.AddComponent<AudioListener>();
        return soundManager;
    }
    private void Awake()
    {
        thisObj = gameObject;
        thisTrans = transform;
        //存储关闭时的音量比例
        if (PlayerPrefs.HasKey("bgmVolumScale"))
            bgmVolumScale = PlayerPrefs.GetFloat("bgmVolumScale");
        if (PlayerPrefs.HasKey("effVolumScale"))
            effVolumScale = PlayerPrefs.GetFloat("effVolumScale");

        musicAudio = gameObject.AddComponent<AudioSource>();
        musicAudio.playOnAwake = false;
        musicAudio.loop = true;
        musicAudio.volume = bgmVolumScale;
        //FadeVolumeScale = FadeVolume / FadeDistance;
        InitAudioSources();
        DontDestroyOnLoad(gameObject);
    }
    //增加as组件播放器
    void InitAudioSources()
    {
        for (int i = 0; i < 20; i++)
        {
       

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值