/*   游戏音效管理器*   功能:管理游戏中音效的播放和声音的调节*   audioSourceBG是背景(2D)音乐,挂在相机上即可*   gamesound是游戏音效(3D)挂在人物角色身上*/using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class AudioClipManager : MonoBehaviour
{public static AudioClipManager _instance;public static Dictionary<string, AudioClip> DicAudioClipLib;   //音频库public static float AudioClipVolumns = 1F;                     //背景音量public static float GameSoundVolumns = 1f;                     //游戏音效音量private AudioSource audioSourceBG;                             //背景音乐private AudioSource gamesound;                                 //游戏音效public GameObject MainC;                                       //相机void Awake(){_instance = this;GameObject AudioSourceGO = new GameObject("AudioSourceGO");audioSourceBG = MainC.AddComponent<AudioSource>();gamesound = AudioSourceGO.AddComponent<AudioSource>();gamesound.spatialBlend = 1;//设置成3D音效DicAudioClipLib = new Dictionary<string, AudioClip>();//从数据持久化中得到音量数值if (PlayerPrefs.GetFloat("BGVolumns") >= 0){AudioClipVolumns = PlayerPrefs.GetFloat("BGVolumns");audioSourceBG.volume = AudioClipVolumns;}}/// <summary>/// 播放背景音效(2D)/// </summary>/// <param name="name">音效名字</param>public void PlayAudioSourceBGByName(string name){AudioClip clip;if (DicAudioClipLib.TryGetValue(name, out clip)){PlaySound(clip, audioSourceBG);}else{clip = Resources.Load<AudioClip>("Sounds/" + name);PlaySound(clip, audioSourceBG);DicAudioClipLib.Add(name, clip);}}/// <summary>/// 播放游戏音效(3D)/// </summary>/// <param name="name">音效名字</param>public void PlayGameSoundByName(string name){AudioClip clip;if (DicAudioClipLib.TryGetValue(name, out clip)){PlaySound(clip, gamesound);}else{clip = Resources.Load<AudioClip>("Sounds/" + name);PlaySound(clip, gamesound);DicAudioClipLib.Add(name, clip);}}/// <summary>/// 改变音乐音量/// </summary>/// <param name="floAudioBGVolumns">背景音乐音量</param>/// <param name="floGameSoundVolum">游戏音效音量</param>public void SetAudioVolumns(float floAudioBGVolumns, float floGameSoundVolum){audioSourceBG.volume = floAudioBGVolumns;gamesound.volume = floGameSoundVolum;AudioClipVolumns = floAudioBGVolumns;GameSoundVolumns = floGameSoundVolum;//数据持久化PlayerPrefs.SetFloat("BGVolumns", floAudioBGVolumns);PlayerPrefs.SetFloat("GameSoundVolumns", floGameSoundVolum);}/// <summary>/// 播放声音的抽像方法/// </summary>/// <param name="clip">音乐剪辑</param>/// <param name="source">播放器</param>private void PlaySound(AudioClip clip, AudioSource source){if (clip != null && !source.isPlaying){source.clip = clip;source.Play();}}
}

OneAlive--游戏音效管理器相关推荐

  1. unity音效管理器

    unity游戏制作时,经常需要播放音效,如果没有一个音效管理类,随时随地都可以播放音乐,不利于代码的管理.我们可以将所有关于音效集中到一个管理类当中,可以将这个音效管理器写成单例,也可以将它当作一个模 ...

  2. CocosCreator 音效管理器

    代码都有注释不再赘述 import { _decorator, Node, AudioClip, AudioSource, game, find } from "cc"; impo ...

  3. 【Unity植物大战僵尸】音效管理器开发(二十四)

    42.音效管理器开发 导入资源 整理一下GameManager.cs,因为这个脚本要在两个场景中都共用,所以需要把CurrLV相关的移植到LVManager.cs中去,这里就不显示了,说下如何共用,首 ...

  4. Unity 音效管理器编辑窗口的创建和Manager的创建

    一.音效管理器面板的创建 1.首先要继承EditorWindow,然后再静态方法里创建窗口编辑器. [MenuItem("Manager/AudioManager")] stati ...

  5. H5 微信小游戏 —— 音频管理器

    前言 原本使用的是 egret 的 egret.SoundChannel 和 egret.Sound 来管理音频,但不知为何在重复将游戏切换到前后台后,很容易出现背景音播放不全.播放重复和无法播放的问 ...

  6. U3D客户端框架之 音效管理器 与 Fmod介绍安装导入Unity

    一.Fmod介绍与安装导入Unity 1.Fmod与Unity内置Audio播放器对比 Unity内置的Audio底层使用的是FMOD,但是功能不够齐全,高级一点的功能如混合(Mix)等无法使用: 音 ...

  7. Unity 项目中的音效管理器

    using UnityEngine; using System.Collections; using System.Collections.Generic;/// <summary> // ...

  8. unity音效管理器实现(二)之美

    using System.Collections; using System.Collections.Generic; using UnityEngine; /* 功能:用来对项目中的所有音频做同一的 ...

  9. Unity编程笔记----音效管理器

    游戏世界里离不开各种酷炫的音效,把这些音效集中起来进行管理是每个项目必须要做的事情. 分享一下自用的SoundMgr(适用于大多Unity项目) 整体思路: SoundMgr脚本被调用时,自动执行继承 ...

最新文章

  1. Docker核心技术之Docker Compose
  2. 范道馨晟宾馆还不错!
  3. SAP Web IDE本地环境搭建
  4. Bootstrap的坑--千万别踩
  5. 如何在手机上安装Ubuntu Touch 13.10
  6. 微信小程序 加载 HTML 标签
  7. mybatis一个方法执行多条sql_精尽MyBatis源码分析——SQL执行过程之Executor!
  8. Ubuntu用户连续N次输入错误密码进行登陆时自动锁定X分钟
  9. C++银行管理系统源代码
  10. 计算机专业简历教育背景怎么写,简历中的教育背景应该怎么写
  11. 某程序员揭秘“开水团”大厂真实福利
  12. Win10 + Ubuntu20.04 双系统+双硬盘安装
  13. 【Django | 安全防护】CSRF跨站伪请求和SQL注入攻击
  14. Word VBA自动排版(2)-通过自动查找替换去除叠字
  15. 华为云Nginx配置
  16. diskpart(diskpart转换GPT)
  17. Ubuntu 18.04 Mellanox ConnectX 网络适配器驱动安装
  18. Github:this exceeds GitHub‘s file size limit of 100.00 MB
  19. 怎么关闭linux电脑的热启动键,热启动计算机的按键是什么
  20. activiti6官方示例笔记

热门文章

  1. 如何在CCS中建立自己的工程
  2. W11或W10系统如何进行休眠?
  3. 我放弃了成为一个全栈开发工程师的理想
  4. 使用接插件需要注意的问题
  5. 外卖“搭上”高铁已成事实,然叫好叫座难兑现?
  6. 交换技术(CCNA魔鬼训练营系列)-陈鑫杰-专题视频课程
  7. 【报告分享】2020年淘宝直播数据分析报告-知瓜数据(附下载)
  8. java之迭代器Iterator基本使用
  9. 华为数通笔记-SDN和Overlay
  10. Magix Music Maker 2023评测