unity 从StreamingAssets文件夹加载wav文件到audioclip数组
时间: 2024-01-08 16:04:43 浏览: 199
你可以使用以下代码将StreamingAssets文件夹中的WAV文件加载到AudioClip数组中:
```
public AudioClip[] LoadWavFilesFromStreamingAssets(string directoryPath)
{
string fullPath = Application.streamingAssetsPath + "/" + directoryPath;
DirectoryInfo directory = new DirectoryInfo(fullPath);
FileInfo[] files = directory.GetFiles("*.wav");
AudioClip[] audioClips = new AudioClip[files.Length];
for (int i = 0; i < files.Length; i++)
{
StartCoroutine(LoadAudioClip(files[i].FullName, audioClip => audioClips[i] = audioClip));
}
return audioClips;
}
private IEnumerator LoadAudioClip(string path, Action<AudioClip> callback)
{
using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip("file://" + path, AudioType.WAV))
{
yield return www.SendWebRequest();
if (www.result == UnityWebRequest.Result.ConnectionError || www.result == UnityWebRequest.Result.ProtocolError)
{
Debug.LogError(www.error);
}
else
{
AudioClip audioClip = DownloadHandlerAudioClip.GetContent(www);
callback(audioClip);
}
}
}
```
这个方法将加载StreamingAssets文件夹中指定路径下的所有WAV文件,并将它们存储在AudioClip数组中。请注意,由于加载是异步的,因此我们需要使用协程等待每个音频剪辑的加载完成。
阅读全文