首页 > 其他分享 >Unity开发之音效相关

Unity开发之音效相关

时间:2024-04-02 09:34:14浏览次数:27  
标签:clip audioSource 音频 Unity 音效 开发 播放 加载

目录

音频文件的导入

音频源相关

麦克风输入相关

获取麦克风设备信息

开始录制

获取音频数据用于存储或者传输

代码控制音频源

动态控制音效播放

示例


音频文件的导入

常用格式:wav,mp3,ogg,aiff

Force To Mono(多声道转单声道)Normalize(强制为单声道,混合过程中被标准化)
Load in Background在后台加载,不阻塞主线程
Ambisonic立体混响声非常适合360度视频和XR应用程序,如果音频文件包括立体混响声编码的音频,请启用该选项

加载类型

Decompress On Load不压缩形式存在内存,加载快,但是内存占用高(适用于小音效)
Compress in memory压缩形式存在内存,加载慢,内存小(适用于较大音效文件)
Streaming以流形式存在,使用时解码,内存占用最小,cpu消耗高(性能换内存)

preload audio data 预加载音频,勾选后加入场景就加载,不勾选,第一次使用时才加载。

压缩方式(Compression Format)

PCM音频以最高质量存储
Vorbis相对PCM压缩的更小,根据质量决定
ADPCM包含噪音,会被多次播放懂点声音,比如碰撞声

音频源相关

Loop循环
Priority优先级
Volume音量大小
Mute静音开关
Pitch音高
AudioClip声音剪辑文件(音频文件)

场景上只允许有一个音效监听器。

麦克风输入相关

获取麦克风设备信息
string[] strs=Microphone.devices;
for(int i=0;i<str.Length;i++)
{
   print(strs[i]);
}//获取麦克风的名字
开始录制
clip=Microphone.Start(null,false,10,44100);
//参数一:设备名字 传空使用默认设备
//参数二:超过录制长度之后是否重录
//参数三:录制时长
//参数四:采样率
获取音频数据用于存储或者传输
//首先插入音频文件
private AudioClip clip;
//用于存储数组数据长度,是用声道*剪辑长度
float[] f=new float[clip.channels*clip.samples];
clip.GetData(f,0);
print(f.Length);

代码控制音频源

首先声明成员变量

AudioSource audioSource;

获取组件

void Start()
{
   audioSource=this.GetComponent<AudioSource>();
}

代码控制播放和停止

//播放音效
audioSource.Play();
//停止播放音效
audioSource.Stop();

代码控制暂停

audioSource.Pause();

延迟播放音效

audioSource.PlayDelayed(7);
//延迟7秒播放

停止暂停

audioSource.UnPause();

检测音效是否播放完毕(可以在Update中不停检测,如果是false就是播放完毕)

if(audioSource.isPlaying)
{
  print("播放中");
}
else
{
  print("播放结束");
{

动态控制音效播放

直接将要播放的对象上挂载脚本,控制播放。实例化挂载 音效源脚本的对象(直接将音效做成预设体)

用一个AudioSource来控制播放不同的音效

AudioSource aus=this.gameObject.AddComponent<AudioSources>();
aus.clip=clip;
aus.Play();

可以挂载多个音效,但是需要自行管理,不然无法识别。

示例

标签:clip,audioSource,音频,Unity,音效,开发,播放,加载
From: https://blog.csdn.net/2303_76354097/article/details/137255064

相关文章

  • 【附源码】JAVA计算机毕业设计汪汪喵宠物寄养中心系统设计与开发(源码+mysql+文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着社会的发展和人们生活水平的提高,宠物已经成为越来越多家庭的重要成员。人们对宠物的关爱和投入也越来越多,这导致了宠物服务行业的迅速发展。其中,宠......
  • vscode开发flutter
    Flutter开发app配置国内镜像,或使用vpn,文档在中国网络环境下使用Flutter|Flutter中文文档-Flutter中文开发者网站-Flutter先从官网下载AndroidStudio,下载完成后,命令行运行flutterdoctor指令将检查Windows完整的Flutter开发环境的所有组件。显示缺少......
  • 一文学会 - Fiddler抓包快速实战,Python开发面试书籍
    只显示指定的请求只显示内网的Hosts[使用频率较少]只显示外网的Hosts[使用频率较少]隐藏指定的Hosts隐藏多个相关Hosts的情况下,使用英文分号隔开,见下图。只显示指定的多个Hosts显示多个相关Hosts的情况下,使用英文分号隔开,见下图。标记过滤到的域......
  • 【赛题解析】【移动应用开发】全国职业院校技能大赛任务一:实现社区首页功能解析
    ​培训、环境、资料、考证公众号:波比网络公众号2:波比网络工作室移动应用开发技能大赛交流群:548238632波比网络专注于技能提升,赋能**本文章全文由波比网络原创,非法转载必究!**文章目录移动应用与开发任务1:实现社区首页功能1.界面顶部显示所在社区名称、轮播图和社......
  • 独立开发三年,打造一款多端书签收藏同步阅读神器平台
    历程开始大家好,我是阿浩。今天,我想向大家介绍一款我独立开发并维护了近三年的实用工具——【藏趣云-书签阅读助手】。这是一款多功能的阅读辅助工具,它支持多种平台,包括网页版、PC端、浏览器插件以及安卓应用程序。目前还未能推出适用于iOS系统的版本,下面丢一张截图,有图有真相......
  • Worker 进行多线程任务开发
    概念介绍在OpenHarmony中,UI线程负责处理UI事件和用户交互,而Worker线程用于处理耗时操作,以提高应用程序的响应速度和用户体验。Worker线程是与主线程并行的独立线程,通常用于执行后台任务。需要注意的是,Worker线程中不能直接修改UI元素,UI更新必须在UI线程中进......
  • QA测试开发工程师面试题满分问答3: python的深拷贝和浅拷贝问题
    在Python中,深拷贝(deepcopy)和浅拷贝(shallowcopy)是用于创建对象副本的两种不同方式。浅拷贝是创建一个新的对象,该对象与原始对象的内容相同(包括内部嵌套对象的引用),但是它们指向相同的内存地址。换句话说,浅拷贝创建了一个对象的表面副本,而不是递归复制所有嵌套对象。当原始对......
  • 京西商城——用户注册和获取用户信息接口开发
    user/views.pyfromdjango.httpimportHttpResponsefromrest_framework.viewsimportAPIViewfromapps.user.modelsimportUserfromapps.user.serializersimportUserSerializerfromutils.ResponseMessageimportUserResponseclassUserView(APIView):......
  • Yarn命令全攻略:解锁前端开发的更多可能
    在前端开发的世界里,Yarn以其高效、稳定、可靠的特点,赢得了众多开发者的青睐。作为前端包管理工具,Yarn不仅提供了基础的依赖管理功能,还通过一系列丰富的命令,为我们解锁了前端开发的更多可能性。今天,就让我来为大家详细介绍一下Yarn的其他命令,带你领略它们的魅力所在。Yarn命......
  • 小程序开发工具拉取代码方法
    1.    下载微信开发者工具官网下载地址https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 2.    开通小程序前端代码的git权限3.    开通体验版权限和开发者权限(需要提供微信号,且微信设置的是可通过微信号添加好友)4.    拉代码......