查看: 2849|回复: 0
打印 上一主题 下一主题

[其他] 读取StreamingAssets文件夹里面所有的图片

[复制链接]

9903

主题

126

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
53488
精华
316

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2015-11-12 05:08:09 |只看该作者 |倒序浏览

图片应放在unity工程下的 StreamingAssets文件夹下
public UITexture uit;
void LoadPicturesOfStreamingAsset()
    {
        StartCoroutine(LoadWWWAllPicture());
    }

   List<Texture> ww = new List<Texture>();
    IEnumerator LoadWWWAllPicture()
    {
        string streamingPath = Application.streamingAssetsPath;
        DirectoryInfo dir = new DirectoryInfo(streamingPath);//初始化一个DirectoryInfo类的对象
        GetAllFiles(dir);
        double startTime = (double)Time.time;
        foreach (DictionaryEntry de in ht)
        {
            WWW www = new WWW("file://" + streamingPath + "/" + de.Key);
            yield return www;
            if (www != null)
            {
                ww.Add(www.texture);
                startTime = (double)Time.time - startTime;
            }
            if (www.isDone)
            {
                www.Dispose();
            }
        }

        uit.mainTexture = ww[5];
        uit.MakePixelPerfect();
        Debug.Log("WWW use time: " + startTime + "   pictures count: " + ww.Count);
    }


    Hashtable ht = new Hashtable();
    public void GetAllFiles(DirectoryInfo dir)
    {
        FileSystemInfo[] fileinfo = dir.GetFileSystemInfos();   //初始化一个FileSystemInfo类型的实例
        foreach (FileSystemInfo i in fileinfo)              //循环遍历fileinfo下的所有内容
        {
            if (i is DirectoryInfo)             //当在DirectoryInfo中存在i时
            {
                GetAllFiles((DirectoryInfo)i);  //获取i下的所有文件
            }
            else
            {
                string str = i.FullName;        //记录i的绝对路径
                string path = Application.streamingAssetsPath;
                string strType= str.Substring(path.Length);
                if (strType.Substring(strType.Length - 3).ToLower() == "png")
                {
                    if (ht.Contains(strType))
                    {
                        ht[strType] = strType;
                    }
                    else
                    {
                        ht.Add(strType, strType);
                    }

                }
            }
        }
    }

使用方法:调用LoadPicturesOfStreamingAsset();

分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏1 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-16 15:42 , Processed in 0.194611 second(s), 28 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部