unity 音频可视化方案
unity 音频组件自带提取频谱数据的方法:GetSpectrumData
于是复习一下ui布局:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;public class Visualizer : MonoBehaviour
{public AudioClip clip;public RectTransform imagePrefab = null;public FFTWindow windowType = FFTWindow.Rectangular;[Space(10)]public Transform labelPrefab;public Transform labelRoot;public int minHeight = 5;public int maxHeight = 540;public AudioSource audioSource;[Space(20),Range(64,8192)]public int dataLen = 64;/** 显示的频带数 */public int showLen = 80;public RectTransform[] cubes = { };// Start is called before the first frame updatevoid Start(){audioSource = new GameObject("Audio Source").AddComponent<AudioSource>();if(!clip){return;}audioSource.clip = clip;audioSource.Play();//vis = GetComponentsInChildren<VisualObject>();initCubes();}private void initCubes() {cubes = new RectTransform[showLen];for(int i = 0; i < showLen; i++){RectTransform cube = Instantiate(imagePrefab, transform);cube.gameObject.SetActive(true);cubes[i] = cube;}for (int i = 0; i < showLen; i++){Transform cube = Instantiate(labelPrefab, labelRoot);TextMeshProUGUI text = cube.GetComponent<TextMeshProUGUI>();cube.gameObject.SetActive(true);RectTransform t = cube.GetComponent<RectTransform>();text.text = i + "";text.fontSize = 5;//t.sizeDelta = new Vector2();}}// Update is called once per framevoid Update(){float[] spectrumDatas = new float[dataLen];audioSource.GetSpectrumData(spectrumDatas,0,windowType);for(int i = 0; i < cubes.Length; i++){Rect rect = cubes[i].GetComponent<RectTransform>().rect;Vector2 size = rect.size;rect.y = Mathf.Lerp(size.y,minHeight + (maxHeight - minHeight) * spectrumDatas[i] * 2,0.1f);Vector2 newSize = new Vector2(rect.x,rect.y);cubes[i].GetComponent<RectTransform>().sizeDelta = newSize;}}
}
unity 可视化
unity 音频可视化方案相关推荐
- Unity音频可视化
直接上效果图(初版): 参考资料:https://blog.csdn.net/liu_if_else/article/details/51233799 https://blog.csdn.net/no ...
- Unity 音频优化方案
参考资料: https://www.cnblogs.com/bearhb/p/11210136.html https://blog.csdn.net/chenfujun818/article/deta ...
- unity 音频可视化
一.原理 1. 傅里叶变换 提出:波形由许多不同的正弦波和余弦波组成.当我们以一个固定频率的sinus wave为基础,向其中添加不同频率的正弦波,我们可以得到越来越接近方形的波长. 从傅里叶函数中 ...
- 【案例设计】音频可视化 解析与设计
开发平台:Unity 2020 编程平台:Visual Studio 2020 前言 面向可视化方案设计中,典型的音频可视化方案 .应用领域广泛,尤其是在地质勘探.医疗器械等方面有着较为典型的 ...
- Unity中的音频资料总结-基本使用+音频可视化+音效管理
入门 基础用法一 基础用法二 进阶 音频可视化 看着一个基本就够了 这个是拆解 简单使用 具体使用 好看的 也是对第一个视频的拆解分析 核心api就一句 GetOutputData 各种炫酷的效果 # ...
- Unity 进阶 之 实现简单的音频可视化封装(包括音频和麦克风)
Unity 进阶 之 实现简单的音频可视化封装(包括音频和麦克 目录 Unity 进阶 之 实现简单的音频可视化封装(包括音频和麦克 一.简单介绍 二.实现原理 三.注意事项 四.效果预览 五.实现步 ...
- 傅里叶变换音频可视化_音频可视化中的信号处理方案
声明: 原创文章,未经允许不得转载. 音频可视化是一个"听"起来非常"美"好的话题,其复杂程度很大程度上依赖视觉方案(一些例子),不同的视觉方案决定了你的技术方 ...
- Unity 语音识别以及音频可视化
代码很简单没有难度,自己看一下应该就能明白. OK 老规矩,直接上代码: 语音识别以及音频可视化 怎么说呢,就是这个语音识别的模块现在Unity只能识别关键字,并不能完整的识别语句以及语气,只能做一些 ...
- android pcm频谱_Android音频可视化
本文作者:熊鋆洋 (网易云音乐大前端团队) 前言 音频可视化,顾名思义就是将声音以视觉的方式呈现出来.如何将音频信号绘制出来?如何将声音的变化在视觉上清晰的表现出来,让视觉和听觉上的感受一致?这些在 ...
最新文章
- MyEclipse 中Access restriction 出现问题的解决
- 一个div 上下两行_纯CSS实现单一div的正多边形变换
- BeanFactory和ApplicationContext有什么区别
- java学习(49):方法重载
- 笔记本上的CNN搞定了MNIST
- 3,进程间通信IPC机制,线程,线程通信,互斥锁
- Photoshop插件-创建所有亮度通道蒙板-脚本开发-PS插件
- 硬件加密芯片介绍 及 加密芯片选择(加密IC) 加密芯片原理
- 微信小程序添加服务器域名
- cad计算机绘图知识点,CAD制图入门初学知识点汇总
- SAP 取标标准成本和实际成本
- iText7高级教程之html2pdf——6.在pdfHTML中使用字体
- mac版免费吃鸡游戏(荒野行动)
- 常见的DNSBL(邮件黑名单),及DNSBL(邮件黑名单)的选择
- 用excel来构建柯布-道格拉斯Cobb-Douglas生产函数的可视化
- 解析低压差线性稳压器(LDO)在摄像头应用中的创新设计
- Directional库的学习记录
- 基于FME的水库功能分区生态红线批量处理方案(从文本到gdb)
- ::before 和:after的区别
- 微信小程序与服务器对称加解密,细说CryptoJs使用(微信小程序加密解密)