新版本的Unity改用了UnityWebRequest来替代WWW,贴图泄漏要注意
//在旧的WWW里
//不能直接www.texture
xxx.texture = www.texture;
//只要有www.texture就会有内存泄漏
//可以用www的LoadImageIntoTexture方法直接赋值
www.LoadImageIntoTexture(texture);
在UnityWebRequest下没有了LoadImageIntoTexture方法,可以改用DownloadHandlerTexture.GetContent();
string path = string.Format("{0}/svg/{1}", Application.persistentDataPath,one.xml.path);
filename = string.Format("{0}/{1}.ss", path, one.xml.svg);
if (Application.platform == RuntimePlatform.Android)
{
filename = string.Format("file://{0}", filename);
}
else
{
filename = string.Format("file://{0}", filename);
}
//Debug.Log("如果有图片了." + one.xml.svg+","+ filename);
//Debug.Log("==="+filename);
www = UnityWebRequest.Get(filename);
downloadTexture = new DownloadHandlerTexture(true);
www.downloadHandler = downloadTexture;
yield return www.SendWebRequest();
if (www.isNetworkError || www.isHttpError)
{
Debug.LogError(www.error + "," + filename);
one.DeleteOne();
continue;
}
if (!dictJPG.ContainsKey(one.xml.svg))
{
dictJPG.Add(one.xml.svg, www);
}
Texture2D texture2d = DownloadHandlerTexture.GetContent(www);
one.svgImg.texture = texture2d;
另外有一个关于加载图片的测试:
https://blog.csdn.net/thinbug/article/details/118760149?spm=1001.2014.3001.5501