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只需要一次解码,多个地方同时展示

Unity支持GIF,零卡顿,秒解码相关推荐

  1. Unity 编辑器ScrollView滚动卡顿优化

    原因 在使用 Unity 开发游戏的时候,经常会需要用到数据配置,方式可能是CSV.JSON等等.为了可以方便地查看修改数据,通常使用ScrollView实现在 Unity 编辑器里面以列表的形式查看 ...

  2. 【优化】Unity游戏加载卡顿原因之一:冗余组件的挂载问题

    游戏加载卡顿这个问题严重吗? 一.背景 在游戏开发中游戏的卡顿不是某个单一的问题导致,是由诸多问题的量变在一起导致的:可能是资源层面的,也可能是逻辑层面的,也可能是网络层面的-;我这里要说的是Unit ...

  3. 王盛:QUIC让B站在20%丢包时实现零卡顿

    B站团队是目前少数在生产环境中部署QUIC的视频平台,收益明显.在面对未来网络基础设施升级的背景下,如何让视频传输更流畅.稳定是各视频服务平台必须面临的挑战.LiveVideoStack邮件采访了哔哩 ...

  4. Android UI卡顿监控

    一.背景 应用的使用流畅度,是衡量用户体验的重要标准之一.Android 由于机型配置和系统的不同,项目复杂App场景丰富,代码多人参与迭代历史较久,代码可能会存在很多UI线程耗时的操作,实际测试时候 ...

  5. 想让安卓app不再卡顿?看这篇文章就够了

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由likunhuang发表于云+社区专栏 实现背景 应用的使用流畅度,是衡量用户体验的重要标准之一.Android 由于机型配置和系统的 ...

  6. 随笔:说说第一次在android中嵌入非全屏显示的unity游戏时的坑之——界面切换时出现延迟/卡顿/花屏等现象解决方法

    One 最近对接了个unity3D做的小游戏到android项目中:游戏嵌入项目的界面且非全屏显示,项目几经波折,到我手上的时候,已经采用了在同一个activity中用两个View来分别显示andro ...

  7. Unity CPU优化卡顿

    当我们打开一个包含大量数据的新场景或背包界面,往往会比较卡顿,因为你大概的时候要处理这样的数据↓ 解决方案无非是缩小总数据量↓ 排队(缩小单位时间内数据量)↓ 场景1:打开背包等包含大量数据的界面(渲 ...

  8. 2018最新4k超高清视频编辑,解码,编码,数据压缩,特效合成,调色,影视后期,卡顿慢问题分析

       2018最新4k超高清视频编辑,解码,编码,数据压缩,特效合成,调色,视频渲染输出,影视后期,卡顿慢问题分析 4K视频时代到来,影视后期制作的各个环节(如视频剪辑.特效合成.视频调色.视频输出等 ...

  9. unity如何解决协程开启频繁导致的程序卡顿

    unity如何解决协程开启频繁导致的程序卡顿 一.协程 协程并不会在Unity中开辟新的线程来执行,其执行仍然发生在主线程中.当我们有较为耗时的操作时,可以将该操作分散到几帧或者几秒内完成,而不用在一 ...

最新文章

  1. 技术图文:Matlab VS. Numpy 常见矩阵
  2. VTK:Math之NormalizeVector
  3. 我的博客今天0岁346天了,我领取了…
  4. 数据结构——从叶子结点到根节点的全部路径
  5. 惠而浦:使用Netty和Kafka的微服务
  6. idea spring tomcat启动失败_技术篇 | 实用IDEA插件和工具系列
  7. 密码学电子书_密码学中的电子密码书(ECB)
  8. Linux时间子系统之六:高精度定时器(HRTIMER)的原理和实现
  9. 华为命令 hybird实验
  10. 【支付】第三方支付收单机构
  11. 如何给 ReactJS 应用增加配置文件?
  12. 邓俊辉《数据结构》-向量学习笔记
  13. 极光推送上线7周年大庆,777件礼物送给大家
  14. 浏览器网页视频怎么快速下载到本地?
  15. lpop 原子_高负载量的Pd单原子催化剂用于选择性催化加氢反应
  16. WPS设置Excel下拉选项
  17. ansible-playbook部署K8S高可用集群
  18. EPICS数据通过MQTT物联网协议上云
  19. mysql注入大全_mysql注入大全及防御
  20. 东北大学秦皇岛分校通信工程中外合作2020级C/CPP实验8

热门文章

  1. 微信小程序定义和调用全局变量globalData
  2. python-课后作业-4
  3. web前端100道面试题
  4. FFmpeg解码视频并保存为图片
  5. 计算机毕业设计 SSM校园拼车系统 拼车出行管理系统 滴滴打车管理系统Java Vue MySQL数据库 远程调试 代码讲解
  6. PostgreSQL 源码解读(203)- 查询#116(类型转换实现)
  7. 已解决Starting MySQL... ERROR The server quit without updating PID file
  8. JS判断是否为safari苹果浏览器
  9. Idea导包正确还是显示标红(错误)
  10. 统计学习(四):重抽样方法