我试图从磁盘加载纹理(并最终从它创建一个精灵),但精灵呈现为低分辨率图像。
我在做什么:
->从url下载图片。一旦图像下载,我将纹理保存为png格式到磁盘,这样下次就不需要下载了。
WWW www = new WWW(url);
yield return www;
if (www.isDone)
{
if (string.IsNullOrEmpty(www.error))
{
Sprite img = Sprite.Create(www.texture, new Rect(0, 0, www.texture.width, www.texture.height), new Vector2(0, 0));
reward.RewardSprite = img;
byte[] bytes = www.texture.EncodeToPNG();
FileManager.SaveRewardImage(reward.rewardId, bytes);
}
else
{
Debug.Log(www.error);
}
}
->从磁盘加载
string path = string.Format("Cache\Venue\{0}", nameWithoutExtension);
return Resources.Load<Texture2D>(path);
第一次从url加载纹理时,它的分辨率似乎很好(因为它是原始的)。当它从缓存加载时,它会衰减到较低的一个。有人能告诉我,我错过了什么,或者即使有办法绕过它?
你可以在你的精灵创建中重载你的纹理,就像你在矩形中所做的那样,并在TextureFormat中指定你需要的格式:
Sprite img = Sprite.Create(
new Texture2D (www.texture.width, www.texture.height, TextureFormat format, bool mipmap),
new Rect(0, 0, www.texture.width, www.texture.height), new Vector2(0, 0));