面向对象思想在UnityUI控制背景音乐音效大小开关中的运用
几乎所有游戏的设置面板都会有控制音效BGM背景音乐Music的开启或关闭,音量大小调整的选项.那么我们如何用最简单最直接快捷的面向对象思想来实现这个功能呢?接下来就为大家说明.
AudioSource部分
1.首先创建一个空物体,添加AudioSource组件,把你想播放的Audio拖上去
(我这里颜色有点怪,不过无伤大雅)
2.再在空物体上新建一个脚本,用于管理音频
这个脚本里定义自身的AudioSource,还有向外公开改变音量大小和开启关闭的方法
public class BKMusic : MonoBehaviour
{private static BKMusic instance;public static BKMusic Instance => instance;//背景音乐的引用private AudioSource bkMusic;private void Awake(){//实例化instance = this;bkMusic = this.GetComponent<AudioSource>();}//开启和关闭的方法public void MusicSwitch(bool isOpen){if (isOpen)bkMusic.Play();elsebkMusic.Pause();}//改变音量大小的方法public void ChangeVolume(float value){bkMusic.volume = value;}
}
UGUI部分
1.使用UGUI搭建一个这样的设置界面
提示:
2.然后在UGUI的Canvas上新建一个脚本用于获取Toggle和Slider改变的值
//引用public Toggle toggle;public Slider slider;//上一次的值private bool last_toggle_value;private float last_slider_value;private void Start(){//初始化last_toggle_value = toggle.isOn;last_slider_value = slider.value;}private void Update(){//只有在改变值的情况下才运行if (toggle.isOn != last_toggle_value){BKMusic.Instance.MusicSwitch(toggle.isOn);last_toggle_value = toggle.isOn;}if (slider.value != last_slider_value){BKMusic.Instance.ChangeVolume(slider.value);last_slider_value = slider.value;}}
这样就能通过设置面板控制音乐音效的开启关闭/音量大小了!
面向对象思想在UnityUI控制背景音乐音效大小开关中的运用相关推荐
- 实现控制背景音乐声音大小
1.首先在Project层级里面 创建一个Audio文件夹:用来装我们想要的音乐 然后下载自己喜欢的音乐放进这个文件夹里 2.然后在Hierarchy 右键创建UI:Canvas.Slider 父子关 ...
- 第0篇 面向对象思想
一 面向对象思想的起源 面向对象(Object-Oriented)思想最初起源于20世纪60年代末的simula67语言.面向对象方法的基本要点首次在simula语言中得到了表达和实现.80年代,位于 ...
- IOS应用管理学习,进阶,涉及字典转模型,工厂方法,面向对象思想,页面布局等
IOS应用管理学习,进阶,涉及字典转模型,工厂方法,面向对象思想,页面布局等 前言:人为规定的参数 每一个 小view视图 宽度 80 高度 90 数据类型 CGFloat 定义, 3 列,数据类型 ...
- 浅谈面向对象思想下的 C 语言
如何使用OO思维方式 面向对象(object Oriented,简称:OO)在于用"找对象"的方式去规划和描述问题. 一.怎样"找对象" (思维过程) &quo ...
- 第一节:从面向对象思想(oo)开发、接口、抽象类以及二者比较
一. 面向对象思想 1. 面向过程(OP)和面向对象(OO)的区别: (1):面向过程就是排着用最简单的代码一步一步写下去,没有封装,当业务复杂的时候,改动就很麻烦了 (2):面向对象将复杂的业务分离 ...
- linux 设备驱动总结,linux设备驱动归纳总结(三):3面向对象思想和lseek
linux设备驱动归纳总结(三):3.设备驱动面向对象思想和lseek的实现 一.结构体struct file和struct inode 在之前写的函数,全部是定义了一些零散的全局变量.有没有办法整合 ...
- 面向对象思想----不看懊悔!
面向对象思想----不看懊悔! 前言: 整理这份资料的目的是为了帮助朋友们可以更直观的理解面向对象的编程.让后来者可以少走一些弯路.但当中不免有很多漏洞及错误,也还 请前辈提出宝贵的更改意见,毕竟交流 ...
- c++学习笔记(7) 面向对象思想
面向对象思想: 1.string类: C字符串:将字符串看作以'/0'结尾的字符数组 string类: 处理字符串 2. 使用string类对象: // 字符串初始化 string s1 = &quo ...
- 面向对象思想-谈谈建筑电气设计的思想
面向对象的程序设计语言必须有描述对象及其相互之间关系的语言成分.这些程序设计语言可以归纳为以下几类:系统中一切事物皆为对象:对象是属性及其操作的封装体:对象可按其性质划分为类,对象成为类的实例:实例关 ...
最新文章
- XML 特殊字符处理和 CDATA
- 10分钟搞定让你困惑的 Jenkins 环境变量
- PAT甲级1020 Tree Traversals:[C++题解]树的遍历、由中序序列和后序序列递归建树
- [转] CSS 颜色名
- Apicloud开发之V7包继承AppCompactActivity后云编译资源找不到的解决办法
- jsf绑定bean_JSF –渴望的CDI bean
- 转: Linux下单网卡多vlan多虚拟机
- C语言汉字写入问题及Unicode优势
- 【JAVA】 02-Java对象细节
- TR069 ACS模拟器测试脚本
- Spring框架之ioc
- 【2022最新Java面试宝典】—— Nginx面试题(23道含答案)
- docker镜像下载到本地,并导入其他服务器
- 3ds MAX 2016破解激活详细步骤分享
- 前端饿了么UI messageBox二次封装,防止重复弹窗
- 回顾计算机主板中南北桥的作用
- 人工智能教你识别口红色号
- CSS控制,彩色图片变灰色
- matlab用抛物线族表示马鞍面,matlab画马鞍面
- 【安卓开发、鸿蒙开发】安卓模拟按键事件