Unity学习日记-使用脚本进行音频资源的读取,Resources.LoadAll
2016-01-19 11:30
549 查看
这次过程太过艰辛,在网上搜了很多,然而一个能用的都没有,于是自己硬生生的试了出来,就讲结论吧。
要做的事情是用脚本读取音频文件,其实读取音频文件用GUI是非常简单的,可是,HRTF的数据库动辄几百的音频文件,若要手工,画面太美,而且如果都放在场景之中,很容易乱套,所以还是当做资源文件调用比较合适。
(我目前知道的)Unity 提供了三个读取资源的函数,分别是Resources.Load, Resources.LoadAll, Resources.LoadAssetAtPath。前两个分别是读取Assets/Resources文件夹里面指定文件和文件夹,第三个可以读其他文件夹文件夹,我需要是读取指定文件夹的所有文件,所以使用Resources.LoadAll。我将所有的wav文件都保存在了Assets/Resources/HrtfData文件夹下。
Object[] objs = Resources.LoadAll ("HrtfData");
Debug.Log (">>1 objs = " + objs + "\n");
Object obj0 = objs [0];
Debug.Log (">>2 obj0 = " + obj0 + "\n");
AudioClip aud0 = (AudioClip)objs [0];
Debug.Log (">>3 aud0 = " + aud0 + "\n>>3 " + aud0.samples + " samples * " + aud0.channels + " channels");
Debug中返回名字和类型,类型在名字后的括号中,可以发现obj0 的type就已经是AudioClip,然而需要(AudioClip)obj 这条语句进行type 的转换,否则无法编译。试了一下下面这句话也不能编译。
AudioClip[] auds = (AudioClip[])Resources.LoadAll ("HrtfData");
剩下就是AudioClip.GetData() 的工作了,可以读取到每一个sample。
怀念Matlab 的日子。
要做的事情是用脚本读取音频文件,其实读取音频文件用GUI是非常简单的,可是,HRTF的数据库动辄几百的音频文件,若要手工,画面太美,而且如果都放在场景之中,很容易乱套,所以还是当做资源文件调用比较合适。
(我目前知道的)Unity 提供了三个读取资源的函数,分别是Resources.Load, Resources.LoadAll, Resources.LoadAssetAtPath。前两个分别是读取Assets/Resources文件夹里面指定文件和文件夹,第三个可以读其他文件夹文件夹,我需要是读取指定文件夹的所有文件,所以使用Resources.LoadAll。我将所有的wav文件都保存在了Assets/Resources/HrtfData文件夹下。
Object[] objs = Resources.LoadAll ("HrtfData");
Debug.Log (">>1 objs = " + objs + "\n");
Object obj0 = objs [0];
Debug.Log (">>2 obj0 = " + obj0 + "\n");
AudioClip aud0 = (AudioClip)objs [0];
Debug.Log (">>3 aud0 = " + aud0 + "\n>>3 " + aud0.samples + " samples * " + aud0.channels + " channels");
Debug中返回名字和类型,类型在名字后的括号中,可以发现obj0 的type就已经是AudioClip,然而需要(AudioClip)obj 这条语句进行type 的转换,否则无法编译。试了一下下面这句话也不能编译。
AudioClip[] auds = (AudioClip[])Resources.LoadAll ("HrtfData");
剩下就是AudioClip.GetData() 的工作了,可以读取到每一个sample。
怀念Matlab 的日子。
相关文章推荐
- unity实现多点触控代码
- 在Unity中实现动画的正反播放代码
- unity实现摄像头跟随
- Unity3D上路_01-2D太空射击游戏
- Unity3D上路_02-第一视角射击游戏
- Unity3D上路_03-塔防游戏
- Unity3D上路_04-基础资源介绍
- Unity3D上路_05-网络相关
- [软件资讯]Unity已支持将3D游戏导出成Flash
- Unity 武器拖尾效果
- unity常见问题之20题
- Unity3D动画存储插件
- unity 赛车相机跟随物体移动
- Unity 预编译宏
- Unity AssetDatabase类
- VS2013中 命名空间“UnityEngine”中不存在类型或命名空间名称“UI”。是否缺少程序集引用?
- unity 实现炸弹人放炸弹后只进不出的一种方法
- Unity3D占用内存太大的解决方法
- 【Unity】安卓项目使用带有资源Jar包SDK的打包方法
- Unity2d 5.1 弱联网游戏制作 (一)场景创建、添加组件、精灵移动、主摄像机跟随