最近公司开发了个项目,需要做一个相册功能,在网上我看大都是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); }