unity 获取StreamingAssets文件夹下多个wav并放入一个audioclip数组
时间: 2023-12-10 13:37:38 浏览: 140
可以使用Unity的AudioClip.LoadAudioData方法加载多个wav文件,并将它们存储在一个AudioClip数组中。以下是示例代码:
```csharp
using UnityEngine;
public class LoadAudioClips : MonoBehaviour
{
public string[] audioClipNames;
private AudioClip[] audioClips;
private void Start()
{
audioClips = new AudioClip[audioClipNames.Length];
for (int i = 0; i < audioClipNames.Length; i++)
{
string path = Application.streamingAssetsPath + "/" + audioClipNames[i];
StartCoroutine(LoadAudioClip(path, i));
}
}
private IEnumerator LoadAudioClip(string path, int index)
{
using (WWW www = new WWW(path))
{
yield return www;
AudioClip clip = www.GetAudioClip();
clip.LoadAudioData();
audioClips[index] = clip;
}
}
}
```
在此示例中,我们首先定义了一个字符串数组audioClipNames,其中包含要加载的音频文件的名称。然后,我们在Start方法中创建一个AudioClip数组audioClips,该数组的长度与audioClipNames数组的长度相同。
接下来,我们使用for循环迭代audioClipNames数组中的每个元素,并使用StreamingAssetsPath构建路径。然后,我们使用LoadAudioClip协程加载每个音频文件并将其存储在audioClips数组的相应位置中。
在LoadAudioClip协程中,我们使用WWW类加载音频文件,并使用GetAudioClip方法获取AudioClip对象。然后,我们使用LoadAudioData方法加载音频数据,并将AudioClip对象存储在audioClips数组中的相应位置。
最终,当所有音频文件都加载完毕后,我们可以在audioClips数组中访问它们。
阅读全文