Unity简单的声音切换渐变实现
来源:互联网 发布:php html转markdown 编辑:程序博客网 时间:2024/06/05 00:57
在学习Stealth案例教程中,如果按照老师的写法感觉并没有实现想要的声音渐变效果,于是就自己多写了一点。代码有点多,不过功能是实现了的。在网上也看到有人用协程来处理声音渐变效果,有时间我也试一下。
以下代码运行结果大概是这样:警报开启后,默认的bgm声音逐渐减小,然后切换到有急促感的bgm,再把声音逐渐放大;当警报解除后,又从此bgm以同样的方式渐变切换到默认bgm。
其中用到的Mathf.Lerp(),伙伴们可查API。。。。^_^
private void Update() { AlarmLight._instance.alarmOn = this.alarmOn; if (alarmOn) { //声音切换渐变大法 //如果当前声音是小的,目标声音是1,则切换声音文件 if (bgmAudio.volume <= 0.1 && targetVolume == 1) { bgmAudio.clip = bgmClip[1]; canChange = true;//可以切换 bgmAudio.Play(); } //如果当前声音是正常的,并且目标声音是0,是否可以改变为false if (bgmAudio.volume > 0.1 && targetVolume == 0 && canChange == false) { //将声音渐变到0 bgmAudio.volume = Mathf.Lerp(bgmAudio.volume, targetVolume, Time.deltaTime * bgmChangeSpeed); if (bgmAudio.volume <= 0.1) { targetVolume = 1; } } //如果当前声音目标是1,并且可以切换 if (targetVolume == 1 && canChange) { //将声音渐变到1 bgmAudio.volume = Mathf.Lerp(bgmAudio.volume, targetVolume, Time.deltaTime * bgmChangeSpeed); if (bgmAudio.volume >= 0.6) { canChange = false; } } SirenOnPlay(); } else { //声音切换渐变大法 if (bgmAudio.volume <= 0.1 && targetVolume == 0) { bgmAudio.clip = bgmClip[0]; canChange = true; bgmAudio.Play(); } if (bgmAudio.volume > 0.1 && targetVolume == 1 && canChange == false) { bgmAudio.volume = Mathf.Lerp(bgmAudio.volume, targetVolume - 1, Time.deltaTime * bgmChangeSpeed); if (bgmAudio.volume <= 0.1) { targetVolume = 0; } } if (targetVolume == 0 && canChange) { bgmAudio.volume = Mathf.Lerp(bgmAudio.volume, targetVolume + 1, Time.deltaTime * bgmChangeSpeed); if (bgmAudio.volume >= 0.5) { canChange = false; } } SirenOnStop(); } }
阅读全文
0 0
- Unity简单的声音切换渐变实现
- unity实现简单的摄像机切换
- iosnavigationbar渐变的简单实现
- jquery实现的非常简单实用带有渐变切换效果的tab选项卡
- 简单的录音功能,通过图片切换实现声音大小的显示
- Unity 简单渐变着色器
- Unity笔记之-----简单的背包切换
- unity声音的管理
- unity实现模型颜色渐变
- Unity实现ui渐变效果
- jQuery实现背景图渐变切换
- 实现tablayout切换时颜色随之渐变的效果
- Kbengine+Unity实现简单的注册登录 登陆成功切换场景
- Unity实现场景切换的方法
- Unity实现场景切换的方法
- Unity实现场景切换的方法
- tab切换的简单实现
- unity声音和动画简单实用示例
- Qt中的JSON支持
- day01之合并两个有序链表+实现1+2+3...+n要求不能使用乘除法循环条件判断等
- redis的持久化
- session技术
- centos中/etc/issue的字符格式
- Unity简单的声音切换渐变实现
- Spark2.X源码学习--从SparkContext创建分析AppClient注册
- 【哈希表】关于map
- 数值的整数次方
- Java异常处理
- tomcat环境配置
- 判断101-200之间有多少个素数,并输出所有素数。
- SpringBoot:四种读取properties文件的方式
- Java内存机制详解|JVM初步