Unity获取麦克风实现吹气球效果
最近做了个吹气球的案例,远离就是获取设备的麦克风,对声音进行采样,我这里是手机测试。实现了吹气气球不断变大的效果。
直接上代码,工程源码文件我分享一个百度云地址。我的Unity版本是2018.2.1,手机测试时安卓。
项目工程地址:https://pan.baidu.com/s/15gK88rMI2yD0nZq3hJHTvQ
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
public class Audio : MonoBehaviour {public Text text;public AudioSource Myaudio;public AudioSource QiqiuAudio;public AudioSource BaozhaAudio;float timer = 0;public string sFrequency = "44100";public GameObject prefab;public GameObject Qiqiu;public float Speed = 1;float scale = 0;bool IsBaozha = false;// Use this for initializationvoid Start () {if (Application.isEditor)return;StartRecord();StartCoroutine("Wait");}IEnumerator Wait(){yield return new WaitForSeconds(0.25f);if (Volume > 10){scale += 0.1f*Speed;offset += 1.5f;if (scale <= 1)Qiqiu.transform.localScale = new Vector3(1+scale, 1+scale, 1+scale);//爆炸else{StopCoroutine("Wait");IsBaozha = true;StartCoroutine(BaoZhaEffect());}if (offset < 15){if(Random.Range(0,1.0f)>0.5f)StartCoroutine(RoateAndMove(offset, 0.15f));elseStartCoroutine(RoateAndMove(offset, -0.15f));}elseoffset = 0;}if(!IsBaozha)StartCoroutine(Wait());}//场景一开始就开启录音功能void StartRecord(){Myaudio.Stop();Myaudio.loop = true;Myaudio.mute = false;Myaudio.clip = Microphone.Start(null, true, 1, int.Parse(sFrequency));while (!(Microphone.GetPosition(null) > 0)){} }float offset = 0;// Update is called once per framevoid Update () {if(!Application.isEditor)text.text = Volume.ToString();if(Input.GetKeyDown(KeyCode.Space)){ StartCoroutine(RoateAndMove(offset, 0.15f));}}IEnumerator RoateAndMove(float offset,float timer){Vector3 right, left, center;right = new Vector3(0, 0, -offset);left = new Vector3(0, 0, offset);center = Vector3.zero;Qiqiu.transform.DOLocalRotate(right, timer);yield return new WaitForSeconds(timer);Qiqiu.transform.DOLocalRotate(center, timer);yield return new WaitForSeconds(timer);Qiqiu.transform.DOLocalRotate(left, timer);yield return new WaitForSeconds(timer);Qiqiu.transform.DOLocalRotate(center, timer);}IEnumerator BaoZhaEffect(){QiqiuAudio.Play();Qiqiu.transform.DOScale(Vector3.one, 0.2f);yield return new WaitForSeconds(0.2F);if(!BaozhaAudio.isPlaying)BaozhaAudio.Play();prefab.SetActive(false);prefab.SetActive(true);Qiqiu.SetActive(false);}public float Volume{get{if (Microphone.IsRecording(null)){// 采样数int sampleSize = 128;float[] samples = new float[sampleSize];int startPosition = Microphone.GetPosition(null) - (sampleSize + 1);// 得到数据this.Myaudio.clip.GetData(samples, startPosition);// Getting a peak on the last 128 samplesfloat levelMax = 0;for (int i = 0; i < sampleSize; ++i){float wavePeak = samples[i];if (levelMax < wavePeak)levelMax = wavePeak;}return levelMax * 99;}return 0;}}public void ResetOnclck(){Qiqiu.SetActive(true);Qiqiu.transform.localScale = Vector3.one;scale = 0;offset = 0;IsBaozha = false;StartCoroutine("Wait");}
}
Unity获取麦克风实现吹气球效果相关推荐
- unity获取麦克风音量_Unity获取麦克风音量(实现音效波浪效果)
1.每个方块(Cube)为一个波浪添加脚本MusicDance 2.整体获取马克风音量大小脚本MusicManager MusicDancepublic class MusicDance : Mono ...
- unity获取麦克风音量_Unity调取移动端的麦克风进行录音并播放
本文实例为大家分享了Unity调取移动端的麦克风进行录音并播放的具体代码,供大家参考,具体内容如下 1.对MicroPhone类的理解 对麦克风的调用在Unity里主要是用到了MicroPhone这个 ...
- unity获取麦克风音量_深入探究Valve Index的耳机、麦克风设计过程
查看引用/信息源请点击:映维网 本文来自于Valve音频工程师艾米莉·丽琪维 (映维网 2019年08月13日)继深入介绍了Index头显的视场之后,Valve日前撰文探究了设备耳机和麦克风方面的设计 ...
- unity获取麦克风音量_Unity3d:检查麦克风输入音量
我想在可视化表示中使用用户在Unity3d中输入的麦克风音量 . 所以我'd like to get a value between 0 and 1 that tell how loud the us ...
- 试着在unity实现阴阳师抽卡效果
试着在unity实现阴阳师抽卡效果 之前为了社团活动(DemoDay,一个展示社团成员游戏作品的社团展会)做了一个抽奖程序.因为是硬核游戏开发社团举办的游戏展,我为此特地做了一个阴阳师的抽卡系统如下 ...
- Unity从零开始实现一个全息效果Shader
Unity从零开始实现一个全息效果Shader 前言 开始捣鼓 一.准备阶段 二.先从透明效果开始 三.顶点故障效果 四.扫描线效果 五.菲尼尔反射效果 六.颗粒效果 七.颜色故障效果 CustomE ...
- Android 录音获取麦克风实时音量(转)--资料
Android 上有一些很有趣的应用,例如<吹裙子>.<吹气球>之类的.利用的是实时获取麦克风输入音量,然后进行相应的处理.录音过程中怎样获得声音的大小呢?下面有个实例 Jav ...
- android获取录音音量大小,Android 获取麦克风音量
Android 上有一些很有趣的应用,例如<吹裙子>.<吹气球>之类的.利用的是实时获取麦克风输入音量,然后进行相应的处理.录音过程中怎样获得声音的大小呢?网上也不少人问如何处 ...
- Unity Shader · 科技感矩阵效果
Unity Shader · 科技感矩阵效果 前言 最近想要做一个次世代卡通渲染(伪),选的是崩崩崩的小八(我最喜欢小八了). 先放几张截图,等全部做完之后再分享用到的一些技术叭. 赶紧做完发B站,等 ...
最新文章
- AI居然能算出情侶能交往多久?使用分析语音数据進行預測
- 使用蚂蚁借呗会影响房贷申请吗?
- 做生意最重要的诚信呢??? | 今日最佳
- c 语言 volatile 关键字
- 《深入理解OSGi:Equinox原理、应用与最佳实践》笔记_1_运行最简单的bundlehelloworld...
- Spark内核解析之三:Spark 通讯架构
- linux备份根目录与还原脚本,Shell脚本备份和还原MBR(主引导记录)
- 关闭 kali 警报音
- sql 多表连接多条件匹配查询,按匹配度排序
- 华为管理学案例分析_华为管理成功案例分析答案
- html5多媒体事件写法,多媒体元素重要事件 -HTML5
- 嵌入式设备的switch 以及PHY 芯片调试和选型 (2)
- IBM DB2基础知识学习作业
- Ubuntu Linux操作系统与实验教程(第二版)答案
- 访问学者办理签证的问题整理!
- Linux系列(四)、文件属性查看和修改,以及软硬连接
- PR LUT预设 25个漂亮的Instagram风格抖音视频调色预设
- 华为低价策略将拿下C网招标30%最大份额
- 139邮箱无法连接服务器,手机号登录邮箱,为什么总是连接不到服务器?
- 视觉系统(CCD)光轴校正-项目实践