unity 获取StreamingAssets文件夹下多个mp3并放入一个audioclip数组
时间: 2023-11-27 17:52:58 浏览: 140
可以使用Unity提供的`AudioClip.LoadAudioData()`方法,该方法可以将音频数据加载到指定的`AudioClip`中。以下是一个获取StreamingAssets文件夹下多个mp3并放入一个audioclip数组的示例代码:
```csharp
using UnityEngine;
using System.Collections;
using System.IO;
public class LoadAudioClips : MonoBehaviour {
public AudioClip[] audioClips;
IEnumerator Start () {
// 获取StreamingAssets文件夹路径
string path = Application.streamingAssetsPath + "/Audio/";
// 获取文件夹内的所有mp3文件
DirectoryInfo dir = new DirectoryInfo(path);
FileInfo[] files = dir.GetFiles("*.mp3");
// 创建AudioClip数组
audioClips = new AudioClip[files.Length];
// 遍历mp3文件
for (int i = 0; i < files.Length; i++) {
WWW www = new WWW(files[i].FullName);
// 等待音频数据加载完成
yield return www;
// 创建AudioClip
AudioClip clip = AudioClip.Create(files[i].Name, (int)(www.audioClip.length * www.audioClip.frequency), www.audioClip.channels, www.audioClip.frequency, false);
clip.SetData(www.audioClip.GetData(), 0);
// 将AudioClip添加到数组中
audioClips[i] = clip;
// 释放WWW对象
www.Dispose();
}
}
}
```
在上面的代码中,我们首先获取StreamingAssets文件夹路径,并获取该文件夹内的所有mp3文件。然后,我们创建一个AudioClip数组,遍历mp3文件,并使用`WWW`类加载音频数据。在音频数据加载完成后,我们创建一个新的`AudioClip`对象,并使用`SetData()`方法将音频数据复制到新的`AudioClip`中。最后,我们将`AudioClip`添加到数组中,并释放`WWW`对象。
阅读全文