unity 从StreamAssets文件夹加载wav文件到audioclip数组
时间: 2023-08-07 12:03:37 浏览: 172
可以使用以下代码将位于StreamingAssets文件夹中的所有WAV文件加载到一个AudioClip数组中:
```csharp
using UnityEngine;
using System.IO;
using System.Collections.Generic;
public class LoadWavFiles : MonoBehaviour
{
public AudioClip[] audioClips;
void Start()
{
LoadAudioClips();
}
void LoadAudioClips()
{
string path = Application.streamingAssetsPath;
DirectoryInfo dir = new DirectoryInfo(path);
[] files = dir.GetFiles("*.wav");
List<AudioClip> clips = new List<AudioClip>();
foreach (FileInfo file in files)
{
StartCoroutine(LoadAudioClip(file.FullName, clip => clips.Add(clip)));
}
audioClips = clips.ToArray();
}
IEnumerator LoadAudioClip(string path, System.Action<AudioClip> callback)
{
using (WWW www = new WWW("file://" + path))
{
yield return www;
AudioClip audioClip = www.GetAudioClip(false, false, AudioType.WAV);
callback(audioClip);
}
}
}
```
这个脚本首先获取StreamingAssets文件夹中的所有WAV文件,然后使用协程异步加载每个文件并将其添加到列表中。最后,这个脚本将列表转换为一个AudioClip数组,可以在需要时使用。
阅读全文