Unity全局音量控制以及音量信息存储在本地

一个简单的全局音量控制功能,主要实现进入游戏音量同步以前的设置,点击设置弹出设置窗口,点击小喇叭禁用\开启音量,移动滑动条调节音量大小。

一、进入游戏时设置音量

//设置声音if (PlayerPrefs.GetString(Const.IsOnVolume) == "") {PlayerPrefs.SetString(Const.IsOnVolume, "true");PlayerPrefs.Save();}if (PlayerPrefs.GetString(Const.IsOnVolume) == "true") {AudioListener.volume = PlayerPrefs.GetFloat(Const.Volume);}if (PlayerPrefs.GetString(Const.IsOnVolume) == "false") {AudioListener.volume = 0f;}

这里Const是自定义的常量类,也可以直接用一个字符串。

二、设置界面的脚本

变量

    //音量按钮private Button _volumeBtn;//音量滑动条private Slider _volumeSlider;

打开设置界面执行的操作

//寻找组件_closeBtn = skin.transform.Find("CloseBtn").GetComponent<Button>();_quitBtn = skin.transform.Find("QuitBtn").GetComponent<Button>();_volumeBtn = skin.transform.Find("VolumePanel").Find("VolumeBtn").GetComponent<Button>();_volumeSlider = skin.transform.Find("VolumePanel").Find("VolumeSlider").GetComponent<Slider>();//监听_volumeBtn.onClick.AddListener(OnVolumeClick);_volumeSlider.onValueChanged.AddListener(OnVolumeValueChanged);_closeBtn.onClick.AddListener(OnCloseClick);_quitBtn.onClick.AddListener(OnQiutClick);//初始化音量控制条及小喇叭颜色string isOnVolume = PlayerPrefs.GetString(Const.IsOnVolume);_volumeSlider.value = PlayerPrefs.GetFloat(Const.Volume);PlayerPrefs.SetString(Const.IsOnVolume, isOnVolume);PlayerPrefs.Save();if (PlayerPrefs.GetString(Const.IsOnVolume) == "true") {AudioListener.volume = PlayerPrefs.GetFloat(Const.Volume);_volumeBtn.GetComponent<Image>().color = Color.green;}if (PlayerPrefs.GetString(Const.IsOnVolume) == "false") {AudioListener.volume = 0f;_volumeBtn.GetComponent<Image>().color = Color.gray;}

音量按钮和音量滑动条事件

  //声音滑动条滑动private void OnVolumeValueChanged(float value) {PlayerPrefs.SetFloat(Const.Volume, value);AudioListener.volume = value;PlayerPrefs.SetString(Const.IsOnVolume, "true");PlayerPrefs.Save();_volumeBtn.GetComponent<Image>().color = Color.green;}//声音按钮点击private void OnVolumeClick() {if (PlayerPrefs.GetString(Const.IsOnVolume) == "true") {PlayerPrefs.SetString(Const.IsOnVolume, "false");PlayerPrefs.Save();AudioListener.volume = 0;_volumeBtn.GetComponent<Image>().color = Color.gray;return;}if (PlayerPrefs.GetString(Const.IsOnVolume) == "false") {PlayerPrefs.SetString(Const.IsOnVolume, "true");PlayerPrefs.Save();AudioListener.volume = _volumeSlider.value;_volumeBtn.GetComponent<Image>().color = Color.green;return;}}

因为没有小喇叭被叉的图片,用灰绿两种颜色代替开启\未开启音量的状态。

Unity全局音量控制以及音量信息存储在本地相关推荐

  1. [Unity 3D] 使用Audio Mixer分别控制主音量、背景音乐和其他音效

    前言 在游戏中,通常我们需要控制整个游戏的主音量(全局音量),并且单独控制背景音乐和其他音效(攻击.爆炸之类)的音量,这时我们可以用Audio Mixer来解决. 如果文章中有哪些地方写的不对, 欢迎 ...

  2. unity全局音量管理/全局音量设置与音量设置界面(含静音功能)

    前言 本文将会介绍如何使用audiomixer实现全局音量控制,并且会介绍如何实现游戏内的含静音功能的音量设置界面. 本人也是个初学者,在看过一些关于音量管理的教程后,发现使用audiomixer实现 ...

  3. 设置KMPlayer的音量控制的快捷键

    ▌01 音频播放器 在 TEASOFT教学软件 中需要控制背景音乐的播放.利用 KMPlayer 进行播放进行同步录制.为了使用TEASOFT对于音乐的控制,需要通过TEASOFT的UDP命令对KMP ...

  4. 音效管理android,Android之声音管理器《AudioManager》的使用以及音量控制

    以下为网上下载然后拼接-- Android声音管理AudioManager使用 手机都有声音模式,声音.静音还有震动,甚至震动加声音兼备,这些都是手机的基本功能.在Android手机中,我们同样可以通 ...

  5. 在 unity中可以使用的直接设置音量大小的方法

    参考网址 在unity中很多的音量控制dll都没有办法使用,调用"user.dll"话只是模拟电脑的快捷键,而且不能够直接设置对应的数值. 需要使用C++创建Dll 生成C++ d ...

  6. Android 音量控制流程分析

    在Android平台上,音量键,主页键(home),都是全局按键,但是主页键是个例外不能被应用所捕获.下面分析一下音量按键的流程,主要从framework层处理开始,至于 EventHub 从驱动的/ ...

  7. Android音量控制

    0. Thanks To Android音量控制调节 android 音量控制setVolumeControlStream android 音量调节以及媒体音量界面 1. 音量调节 我们知道,在平常调 ...

  8. Vue3+TypeScript实现网易云音乐WebApp(播放界面:播放、暂停、音量控制、播放进度控制(点击/拖拽进度条)、上一首、下一首)

    1. 成果展示 真实接口地址 本项目使用的是真实线上的网易云API 线上演示地址 目前只做了每日推荐(需登录)以及排行榜功能,点个star吧大佬们! 项目GitHub地址 main分支是Vue3+Ty ...

  9. Android音量控制曲线

    摘要:本文介绍了android音量的控制曲线的计算方法. 由于人耳对声音的听感具指数曲线型,也就是对小音量时比较敏感,随着声音的加大其听感随之变的不敏感,其变化近似指数函数曲线的形式.为了使听感变的近 ...

最新文章

  1. Python的控制语句2
  2. ASP.NET XML读取、增加、修改和删除操作
  3. 时间同步引起的oracle故障二
  4. 几种常见的用于拟合的分布
  5. Android开发之WebView加载html数据去除Webview滚动条的方法
  6. Mysql安装及自动化部署脚本方案
  7. docker mysql数据库初始化_如何在Mysql的Docker容器启动时初始化数据库
  8. 浅谈Node.js(概念、安装、入门例子)
  9. enityframework 已连接的当前状态为打开。_关于性能优化 从tcp建立连接amp;断开的视角...
  10. poj 3979 分数加减法
  11. Android开发笔记(一百二十二)循环器视图RecyclerView
  12. GO语言学习之路18
  13. c++输入回车结束循环,C++ cin如何输入回车停止
  14. 2003服务器系统驱动精灵,万能驱动助理 e驱动 6.1.2014.0516 for XP/win2003 32位专版
  15. 大学生转入计算机专业申请书,计算机系大学生助学金申请书1000字
  16. Orge配置Debug - 在Mac上利用Homebrew安装指定版本的Cmake
  17. 电路基础-交流电-正弦量和相量
  18. MATLAB之自动控制原理(1)
  19. 云片 php sms接口视频,Laravel、云片网络短信发送PHP SDK
  20. Python基础知识:def创建函数

热门文章

  1. 想做程序员?弄明白这些问题,你会少走很多弯路
  2. 计算机桌面上字太宽怎么办,电脑屏幕字体怎么变大_电脑字体变大如何调-win7之家...
  3. keil如何添加STM32系列
  4. web前端开发技术实验与实践(第三版)储久良编著 项目12 设计简易网站导航
  5. Win2003 Enterprise x64 Edition漏洞下载地址
  6. 王晋康 - 养蜂人·王晋康科幻小说精选集1(2014年2月4日)
  7. Assembly x64 Intro - XMM ABS
  8. Echarts迁徙图
  9. 中国大学MOOC毕业生就业指导考试试题(含答案)
  10. centos下如何查看磁盘使用情况命令