您的位置:首页 > 移动开发 > Unity3D

[置顶] Unity加载本地文件夹中的所有文件

2016-03-28 16:39 459 查看
在我们做项目的时候,为了客户更方便的替换资源,我们会在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就可以了,当然了加载文本和这个都是类似的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: