欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Unity解析gif动态图操作

程序员文章站 2022-06-22 14:48:11
工作需求,要播放一张gif图片,又不想转成视频播放,就开始研究怎样解析gif,在网上也看了不少教程,最后根据自己需求写了个脚本。首先,unity是不支持gif的(至少我没找到方法),而又要在ngui中...

工作需求,要播放一张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\中。

欢迎使用。

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