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