Unity加载本地文件夹中的所有文件

来源:互联网 发布:linux ssh配置 编辑:程序博客网 时间:2024/06/05 02:59

在我们做项目的时候,为了客户更方便的替换资源,我们会在PC本地的目录下读取资源。

using UnityEngine;

using System.Collections;
using System.Collections.Generic;
using System.IO;
public class LoadTexture : MonoBehaviour
{

//建立一个字典,来保存加载进来的图片

private Dictionary<int, Texture> dirArr = new Dictionary<int, Texture>();

//本地的路径,fileName表示的是文件夹的名字
    private string url = @"E:\fileName";
    void Start()
    {
       long length= GetDirectoryLength(url);
        for (int i = 0; i < length; i++)
        {
            StartCoroutine(TEX(i.ToString()));
        }
    }

//从本地加载文本,index这里表示的是文件夹中文件的名字,通过名字一个一个的加载
    IEnumerator TEX(string index)
    {

//这里的文件路径与url的不一样,需要加上file://
        WWW w = new WWW(@"file://E:\fileName\" + index + ".png");
        yield return w;
        int i = int.Parse(index);
        dirArr.Add(i, w.texture);
    }

//获取到文件夹中的个数
    public long GetDirectoryLength(string dirPath)
    {
        //判断给定的路径是否存在,如果不存在则退出
        if (!Directory.Exists(dirPath))
            return 0;
        long len = 0;
        //定义一个DirectoryInfo对象
        DirectoryInfo di = new DirectoryInfo(dirPath);
        //通过GetFiles方法,获取di目录中的所有文件的大小
        foreach (FileInfo fi in di.GetFiles())
        {
            len++;
        }
        return len;
    }

}

这里就已经把外部的文件加载到unity里面了,并且保存在了字典中,当我们需要这些图片的时候就调用dirArr就可以了,当然了加载文本和这个都是类似的。

0 0