Unity图集简介及使用

定义

图集是将很多零碎的2D小图整合成一张大图,方便unity渲染合批,降低渲染消耗。

优势

1.UI的合批处理,减少DrawCall

多张图片需要多次DrawCall,合并成一张大图只需要调用一次DrawCall

2.减少对内存的占用

OpenGL每张贴图都需要设置为2的N次方才能使用,假设有宽高分别为100x100、10x10的两张图片,如果不合成大贴图,那么就需要分别使用128x128和16x16的图片,会浪费一部分内存空间。

如果是使用一张大图的话,就可以将两张图片打到128x128的图集,进而减少内存的占用。

3.提升效率

图片尺寸为2的次幂时,GPU处理起来会快很多,小图不可能做不到每张图都是2的次幂的,但打成一张大图就可以。

图集整理策略

1.尽量紧凑,大小不要超过512x512

2.Draw Call尽量少,同一个界面的小图尽量在一个图集里

3.内存管理方便,加载性能好,打开一个界面时只加载必要的图集,关闭时可以方便地释放图集

4.AssetBundle打包、热更粒度合理,不能出现“热更一个新界面,大量图集都需要热更”的情况

5.设计UI时要考虑重用性,将边框、按钮等共享资源,放在1~3张大图集中,作为重用图集;

6.其它非重用UI按照功能模块进行划分,每个模块使用1~2张图集,作为功能图集;

7.对于部分UI,如果同时用到功能图集与重用图集,但是其功能图集剩下的“空位”较多,则可以将重用图集中用到的元素单独拎出来,合入功能图集中,让UI只依赖于功能图集。通过一定的数据冗余,来实现性能的提升;

注意控制图集的大小,不要让图集太大,一个超级大图集的DrawCall消耗或许顶的上十几个小图集的消耗

使用

1.Edit → Project Setting → Editor → Project Settings

→Sprite Packer

三种模式

Disabled表示不启用它,

Enabled For Builds 表示只有打包的时候才会启用它,

Always Enabled 表示永远启用它。

设置Always Enabled

2.在Assets下的Images文件夹建立一个图片文件夹test,将集中到图集的图片放置到此文件夹中

3.右键—>Create–>Sprite Atlas,命名为test

4.选择Buttons图集,在Objects for Packing中选择图片文件夹test

点击Pack Previes,图集建立完成。

参考资料

【内存优化】图集整理策略

Unity SpriteAtlas的学习

Unity图集的创建与简单的使用(上)

Unity图集简介及使用相关推荐

  1. 引擎入门 | Unity UI简介–第1部分(1)

    本期我们开始为大家介绍UI,这个教程分为三大部分,在第一部分中你将熟悉Unity UI,使你能够向游戏添加自定义用户界面. 值得庆幸的是,Unity Technologies听取了社区的反馈并制定了一 ...

  2. 引擎入门 | Unity UI简介–第1部分(6)

    本期我们继续为大家进行Unity UI简介(第一部分)的后续教程 本篇内容 12.Rect变换取决于当前锚点设置 13.Pivot 文章末尾可免费获取教程源代码 本篇Unity UI简介(第一部分)篇 ...

  3. Unity开发之-Unity入门简介(近万字攻略)

    前言 大家好,我是一个Unity的程序员,从这篇开始我会持续更新学习Unity的基本,去帮助想要学习unity的小伙伴,有兴趣的同学可以跟着我一起学习Unity,下面,我们将要开始了解Unity以及想 ...

  4. Unity图集优化原理

    Unity-UGUI合批优化 图集合批规则 例如1:Blue,Green,Orange三个图片,没有打包图集时候. 例如2:Blue,Green,Orange三个图片,打包为一个图集 例如3:Blue ...

  5. Unity Hub简介

    文章目录 简介 下载地址 注意事项 简介 Unity Hub是一个集Unity不同版本下载.一键添加组件.项目统一管理.官方学习社区于一体的管理工具,运行界面如下: 下载地址 https://stor ...

  6. unity引擎简介——(1)Unity3D游戏开发流程与规范

    主题简介: 游戏开发是所有软件开发类型中最难的一种,不仅技术门槛高,而且要求各种专业人员(策划.程序.美术等等)高度的协同配合.所以实际项目过程中,需要有明确的流程和规范,确保游戏进度良性推进.简单地 ...

  7. unity ECS简介

    什么是Unity ECS Unity ECS是Unity引擎中的一种高性能游戏开发架构,它采用了基于数据的设计思路,与传统的面向对象编程不同.它的目标是提高游戏的性能和可伸缩性. Unity ECS通 ...

  8. Unity ECS 简介

    什么是ECS ? 随着目前游戏对CPU性能要求的不断提升,单核高频的CPU对我们的帮助越来越有限.所以ECS(一种面向数据编程)多核心工作的方式也是大势所趋. Entity 传统组件的集合,代替了Ga ...

  9. Unity 摄像机简介

    摄像机,Unity的核心组件之一.显示场景中,摄像机所照射的部分,是向玩家捕获和显示世界的设备. 摄像机的特性: 1.可以自定义和操纵摄像机: 2.可以在场景中不受限制其数量: 3.可以设定成任意的渲 ...

最新文章

  1. 《C++ Primer 4th》读书笔记 第5章-表达式
  2. 重新认识vue之事件阻止冒泡
  3. python 词云手把手_手把手教你生成炫酷的词云
  4. python中需要用到的英文词汇-使用python从语料库中提取最常用的单词
  5. iphone电池怎么保养_苹果iPhone手机怎么开启【优化电池充电】
  6. 会了这些命令,还怕搞不定思科设备?
  7. 面向对象实现放大镜_面向音乐家和音乐爱好者的开放式硬件:耳机,放大器等
  8. Spring中的Bean是如何被回收的?
  9. hadoop 生态圈
  10. android java静态库,Android NDK开发相关知识集合
  11. 利用Runtime为Category添加属性
  12. 怎么使用7zip进行分批压缩_7zip怎么使用 7zip使用方法教程
  13. python字符串加减乘除_从字符串解析加减乘除符号
  14. 【学术相关】博士开始内卷了吗?
  15. 译:Dataiku 白皮书之《在银行和保险行业应用数据科学》
  16. Android软件测试外文文献,软件测试中英文对照外文翻译文献
  17. html水平线 虚线
  18. 忆享科技聚焦|数字经济、视频云、AI数字人、全球5G用户……行业热点资讯一览
  19. Electron flash插件
  20. 2022年大数据产业规模已超1000亿,从ChatGPT的爆火看大数据行业发展

热门文章

  1. JAVA编写 飞翔的小鸟
  2. 交换机的工作原理是什么?
  3. Ubuntu fcitx输入法占用内存越来越大(超过1G)
  4. 常见的噪声:高斯、泊松和椒盐噪声
  5. WebService 深入详解
  6. 将React Native 集成进现有OC项目中(过程记录) 、jsCodeLocation 生成方式总结
  7. 35个非常有创意的 Flash 网站作品欣赏
  8. ipad已有2周未备份。ipad插入电源、被锁定且接入Wi-Fi时会进行备份
  9. python 从大图中找小图
  10. BusyBox 的配置