Unity 如何读取一个文件夹下的所有的东西
时间: 2024-11-15 19:30:16 浏览: 15
读取文件夹下所有PNG ,JPG
3星 · 编辑精心推荐
在Unity中,读取目录下所有内容通常涉及使用`System.IO`命名空间中的`Directory`类或第三方插件如`WWW`或`UnityWebRequest`。这里我会展示几种方法:
1. **使用Directory类** (适用于文本文件)
```csharp
using System.IO;
string rootPath = Application.dataPath + "/Your/Folder"; // 替换为你的文件夹路径
if (Directory.Exists(rootPath)) {
string[] files = Directory.GetFiles(rootPath); // 获取所有文件
foreach (string filePath in files) {
Debug.Log(filePath);
}
string[] dirs = Directory.GetDirectories(rootPath); // 获取所有子目录
foreach (string dirPath in dirs) {
Debug.Log(dirPath);
}
}
```
2. **使用WWW or UnityWebRequest** (适用于网络和本地文件)
```csharp
using UnityEngine;
using System.Collections;
using System.Net;
public class FileManager : MonoBehaviour
{
public IEnumerator GetFiles(string path)
{
WWW www = new WWW(path);
yield return www WaitUntilComplete();
if (www.error == null) {
string[] fileNames = Directory.GetFiles(www.fileUrl);
foreach (string fileName in fileNames)
Debug.Log(fileName);
} else {
Debug.LogError(www.error);
}
}
private IEnumerator WaitUntilComplete()
{
while (! WWW.IsDone(this))
yield return null;
}
}
```
请确保替换`Your/Folder`为你实际的文件夹路径。对于网络文件夹,`fileUrl`应为完整的URL。
注意:Unity的主线程限制可能会导致某些操作(如网络请求)阻塞,所以如果需要频繁读取大量文件,可能需要考虑使用异步加载或者利用线程池。
阅读全文