2016-09-05 8 views
0

Я пытаюсь загрузить текстуру (и создать спрайт из нее в конце концов) с диска, но спрайт отображается как изображение с низким разрешением.Unity текстура с диска имеет низкое разрешение

Что я делаю:

-> Загрузить изображение из 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, его разрешение кажется нормально (потому, что его оригинал). Когда он загружается из кеша, он ослабляется до более низкого. Может ли кто-нибудь сказать мне, что мне не хватает, или даже если вокруг есть способ? Спасибо заранее.

+0

При запуске этой второй проверки времени в свойствах инспектора импортируемого .png изображение. Скорее всего, требуются настройки сжатия и размера бит. –

ответ

0

Вы можете перегружать вашу текстуру в вашем создании спрайтов таким же образом, что вы делаете с прямоугольником и указать в 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)); 
+0

Привет, изображения с низким разрешением показывались из-за создания карт mip, которые были проверены при сохранении на диске. Проблема в том, что даже если я использую вышеуказанный метод (с bool mipmap), он по-прежнему создает спрайт с проверкой «генерировать mip-карты». – Jajan