Unity原生不支持GIF动图,使用GIFDecoder第三方库实现,解码速度快,占用内存少。
一、简介
github源码地址:https://github.com/3DI70R/Unity-GifDecoder
解码原理地址:https://www.jianshu.com/p/38743ef278ac
二、使用方法
源码下载
1.使用协程加载
使用协程可以很好解决由于while循环造成的对主线程的堵塞
协程的等待一帧,会明显看到第一次解码,速度跟不上其展示速度,感觉到卡顿
2.使用子线程加载
引用子线程解决解码耗时操作,实现秒显示,不会造成卡顿问题,并且可以同时解码多张GIF
主要依靠Loom.cs脚本,封装了子线程,子线程调用主线程的相关逻辑。
3.边解码边播放
解码是一帧一帧进行的,在解码的同时进行展现,不必等待所有的解码完成,这里需要处理解码时的多种状态问题
在循环列表滑动过程中,需要在隐藏的时候挂起解码,再次显示时重新解码
4.多图缓存
同时存在几张GIF的展示,多图缓存很必要
同一个展示的GIF只需要一次解码,多个地方同时展示