Unity解析gif动态图操作

2022-07-23,,,,

工作需求,要播放一张gif图片,又不想转成视频播放,就开始研究怎样解析gif,在网上也看了不少教程,最后根据自己需求写了个脚本。

首先,unity是不支持gif的(至少我没找到方法),而又要在ngui中显示gif图片。所以就想到了将gif解析成序列帧再去循环播放。

有人说可以找软件解析,然后导入unity做动画,最终我没有采用,自己再unity中以代码解析,然后播放的。

代码如下

(在awake中解析的,因为要在其他脚本调用,实时解析的话,到时候会花费一会时间):

补充:unity播放gif插件,不使用第三方库,基于文件协议,纯代码实现,兼容移动端和序列帧

本人通过分析gif的文件协议,分解gif的各序列帧,然后封装成unity可使用的texture,通过递归播放,实现了在unity上播放gif的功能,并发布到了assetstore上面,欢迎各位朋友交流经验。

核心源码:

分解gif

递归播放

插件支持gif播放和序列帧播放。 插件支持透明颜色。

插件通过gif文件协议将图像转换为unity支持的图像,所有的实现都是通过c#代码,所以你可以很容易的修改代码,以达到你的需求。

插件支持image和rawimage两种组件,当然你可以改造一下支持其他组件。

插件支持3种播放模式:

1、通过gif的文件路径

2、通过拖拽gif的二进制文件

3、通过拖拽序列帧

例子放在文件夹assets\plugin\gifplayer\dome\中。

欢迎使用。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。

《Unity解析gif动态图操作.doc》

下载本文的Word格式文档,以方便收藏与打印。