unity 使用UnityWebRequest加载指定文件下所有图片,可以扩展成加载别的文件。

最近公司开发了个项目,需要做一个相册功能,在网上我看大都是www和io加载,自己就参考着做了一个用UnityWebRequest的加载方式,主要思路就是获取所有文件 然后一个一个的赋值,话不多说上代码
这个就是读取相关文件夹下是所有文件,只保留扩展名为png和jpg的文件流

 List<RawImage> rawImages = new List<RawImage>();
    public void LoadOneFolderPicture(string a)
    {
        string path1 = Application.streamingAssetsPath + "/" + a;
        List<string> files = new List<string>();
        string[] vs = Directory.GetFiles(path1);
        if (vs.Length>0)
        {
            foreach (string i in vs)
            {
                string tmp = Path.GetExtension(i);
                if (tmp == ".png" || tmp == ".jpg")
                {
                    files.Add(i);
                }  
            }
            foreach (string i in files)
            {
                StartCoroutine(dq(i));
            }
        }      
    }

这个就是加载一个图片 并且生成到提前声明的父级物体下面,然后添加到list列表,list列表可以进行其他操作,这里我没进行任何操作。这个方法是加载一张图片的。

  IEnumerator dq(string url)//加载一个路径的图片
    {
        UnityWebRequest webRequest = UnityWebRequestTexture.GetTexture(url);
        yield return webRequest.SendWebRequest();
        if (DownloadHandlerTexture.GetContent(webRequest) != null)
        {
            RawImage raw = Instantiate(Rawphotoalbum);
            raw.texture = DownloadHandlerTexture.GetContent(webRequest);
            raw.transform.parent = photoalbum;
            raw.transform.localScale = Vector3.one;
            raw.transform.localPosition = Vector3.zero;
            raw.transform.eulerAngles = Vector3.zero;
            rawImages.Add(raw);
        }

你可能感兴趣的:(unity,unity)