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\中。
欢迎使用。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
下一篇: redis的bigkey扫描脚本深入介绍