Задача - быстро считывать с диска текстуры размером 512х512.
Быстро должно работать и на телефоне. При этом основной поток блочится не должен.
Что пробовал:
UnityWebRequestTexture.GetTexture
texture.LoadImage
texture.LoadRawTextureData
https://codeberg.org/matiaslavik/unity-async-textureimport
обертка над FreeImage. Не сказать что по скорости сильно лучше метода номер 1.
Пробовал сжимать файлы для LoadRawTextureData, слишком медленно.
Может кто еще какие-то методы подскажет?
Ну я пользовался только через
https://docs.unity3d.com/ScriptReference/AssetBundle.LoadAsset.html
Так же юнити все советуют через ассерты делать
https://blogs.unity3d.com/ru/2018/10/08/optimizing-loading-perfor… oad-pipeline/
Лучшего точно не предложу
DanQuimby
Увы, ассет бандлы нельзя по определенным причинам использовать.
Increaser
быстро, или все же асинхронно?
Polyflow3d
Быстро и асинхнонно.
Increaser
а, понятно - быстро, асинхронно сделано должно быть вчера, и (еще наверное ) любые форматы.
Тогда - ой.
Polyflow3d
Да нет, все не так плохо.
Просто ищу замену UnityWebRequestTexture.GetTexture в проекте, но, похоже, какого-либо готового решения нет. Остановлюсь на ней, это не прям критичная проблема.
Буду грузить сначала текстуру с меньшим разрешением, чтобы визуально не было лага, а потом подменять на более жирные.
В своём проекте использую gzip кодирование и LoadRawTextureData
Kripto289
Спасибо, попробую.