There are many custom solutions which require additional plugins and testing.
This is the straight forward solution, by cleverly using Unity tools and UniTask.
Load texture for images completly asynchronyously, using Persistant Path cache or SD Card cache.
Options to extend and use custom cache, as well as add custom regex to remove tokens/expiration/accesskey and other temporal data from your urls.
- UniTask - see https://github.com/Cysharp/UniTask
- MRTK (Mixed Reality Toolkit by Microsoft) - see https://github.com/microsoft/MixedRealityToolkit-Unity
See example : Example
- Create instance of DiskCache (custom or one of the provided).
- Create instance of LoadTextureAsync
- Add DiskCache to LoadTextureAsync
- Use LoadTexture(errorTexture, url) or LoadTexture(errorTexture, url, headers, cancelationToken)
Be sure to check out if the target platform supports given cache folder : https://docs.unity3d.com/ScriptReference/Application-persistentDataPath.html
Loading 50x 1.9Mb image (1600*1000) :
- Loading Raw Bytes from Disk Cache
- Loading Full texture