unity获取麦克风音量_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 initialization
void 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));
else
StartCoroutine(RoateAndMove(offset, -0.15f));
}
else
offset = 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 frame
void 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 samples
float 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获取麦克风音量_Unity获取麦克风音量(实现音效波浪效果)
1.每个方块(Cube)为一个波浪添加脚本MusicDance 2.整体获取马克风音量大小脚本MusicManager MusicDancepublic class MusicDance : Mono ...
- ios 调整麦克风音量_iOS 获取麦克风音量
项目需求要获取麦克风音量,然后界面做出反馈. 注意:录音之前需要先调用以下方法,因为播放和录制的模式是不同的 [[AVAudioSession sharedInstance] setCategory: ...
- ios 调整麦克风音量_ios 调整麦克风音量_如何在ios 7中获得麦克风音量?
有一个观点来获得ios 7中的麦克风音量? NSURL *url = [NSURL fileURLWithPath:@"/dev/null"]; NSDictionary *set ...
- unity获取麦克风音量_Unity调取移动端的麦克风进行录音并播放
本文实例为大家分享了Unity调取移动端的麦克风进行录音并播放的具体代码,供大家参考,具体内容如下 1.对MicroPhone类的理解 对麦克风的调用在Unity里主要是用到了MicroPhone这个 ...
- unity 模型渐变消失_Unity 雨水滴到屏幕效果
文章目录 前言 一.实现过程 1.代码 2.代码分步解析 总结 参考 前言 本文主要介绍用unity实现雨水滴到屏幕的效果,文章介绍的是基础实现,读完这篇文章再去实现复杂效果会更得心应手些.我们先看更 ...
- unity获取麦克风音量_Unity3d:检查麦克风输入音量
我想在可视化表示中使用用户在Unity3d中输入的麦克风音量 . 所以我'd like to get a value between 0 and 1 that tell how loud the us ...
- Android 获取 AudioRecord 麦克风音量大小并做选择性发送
extends:http://blog.csdn.net/alvinhuai/article/details/8955127,http://mikespook.com/2010/11/android- ...
- java测量麦克风音量_Android-使用mediarecorder类获取当前麦克风音量值
获取当前麦克风音量 2014年12月22日 0:21 首先是界面: 检测麦克风当前音量主要是用Android自己的类MediaRecorder来实现的,很多函数都是可以直接使用的,所以实现检测麦克风音 ...
- Vue3 中使用 AudioWorklet 获取麦克风音量
Vue3 中使用 AudioWorklet 获取麦克风音量 最近公司在开发音视频项目,其中有个功能是用户监测麦克风讲话是否有波动:于是从各种技术网站想找关于Vue3的示例项目想着借鉴一番,但是功夫不负 ...
- 获取摄像头和麦克风权限_js获取浏览器摄像头和麦克风权限
前言 项目中会使用到摄像头或麦克风设备,这就需要我们获取浏览器的摄像头和麦克风权限,权限是无法通过js操控的,必须由浏览器用户设置. 下面我来告诉大家如何获取浏览器的摄像头或麦克风的权限,使浏览器弹出 ...
最新文章
- Nature:FB和推特的数据是如何革新社会科学,改变世界的?
- Java8 Stream 使用
- python经典排序_python实现十大经典排序算法
- python123百钱买百鸡_day01笔记-百钱买百鸡(100文钱,必须买100只鸡,有几种方式)
- js截取字符串区分汉字字母代码
- GDB 调试命令讲解-转
- 留个坑,不知道为什么sqlite3要求组权限才能执行db:migrate,而可以直接执行db:......
- c语言练习题库网站,c语言练习题库网站_0.doc
- fiddler的安装与配置
- 数据科学 | Numpy入门教程
- sap apo 生产排程软件的架构和设计分析
- 微信小程序-微信支付
- 记一次Maya入门之材质和模型的导出
- 开发也可以如此简单!华为云发布两款开发工具
- 怎样用计算机求立方根的近似数,第三讲·立方根
- switch语句实现周一到周五输出weekday;周六周天weekend C语言
- 如何使用开源CMS建设网站
- 对于reflect: Elem of invalid type main.User类型的错误解释
- 习题8-2 在数组中查找指定元素 (15 分)(python)
- Android 电子罗盘--指南针(方向传感器的应用)
热门文章
- SVN 代码与文件管理小记
- unity Rigidbogy组件
- Atitit recv https req post code 接受https请求// npm install axios// 安装依赖:npm install body-parse
- Atitit. Toast alert loading js控件 atiToast v2新特性
- Atitit.编程语言and 自然语言的比较and 编程语言未来的发展
- paip.Java Annotation注解的作用and 使用
- Vscode C环境配置(转)
- 操作系统如何恢复到原先状态
- (转) 数字加密货币全球资源汇总
- (转)刘巍然-关于公钥与私钥