前言:

打包图集是一个很简单的过程,但是如果没有这样的经验,可能不知道如何下手

本博客大概说一下打包流程,以及一些基本原理

1、为什么要打包图集

首先要了解一点,在UGUI中即使你什么都不干,在项目打包时,Unity也会自动将你的一些小图片资源合在一张大图里面,也就是合成一张图集,但是这种默认的方式,会产生大量的Draw Call,对于性能消耗比较大

NGUI则是开发者必须要将图片资源打包成图集,然后才能使用这些图片资源

因此无论是UGUI还是NGUI,掌握图集的打包都是非常重要的

2、打包开始前

在合成图集开始前,先了解一下Sprite

首先,在Unity中,Sprite的生成是由Texture2D加一个轴点以及一个矩形来构成的,这就是Sprite为什么作为2D场景元素存在的原因,有一个轴点可以作为坐标轴点,而其矩形可以用来生成网格,处理碰撞体这些东西:

点击任一一张Sprite,可以在Inspect面板看到下面这些信息


通过图中可以看出有下面的属性:

  • Texture Type:这个图片的类型,和你需要的功能有关
  • Sprite Mode:精灵模式是单一还是一张图集
  • Pixels Per Unit:单位距离内的像素点,一般默认100是有些大的,可以通过修改该参数来改变在世界内的大小
  • Mesh Type:网格类型,一般不需要调整
  • Extrude Edges:选择此值以基于像素阿尔法值生成网格。Unity 生成的网格通常遵循Sprite的形状
  • Pivot:用来确定生成锚点位置

3、图集打包流程

第一种方式:

注意:

  • 根据官方文档描述,该方式在 Unity 2020.1 及更高版本中已弃用,并且将不再作为Sprite Packer 模式的选项提供

Project Setting中找到Editor,然后在其中的Sprite Packer选择Always Enabled(Legacy Sprite pakcer)

接下来就可以点击需要合成图集的Sprite,会发现多出一个Packing Tag,我们可以在后面的输入框内输入一个名字,这个名字代表的是一类图片,这个名字相同的所有图片会被打包进入一张图集

在这里,我把三个Sprite命名为Test

完成上面的设置后,我们可以点击导航栏的Windows,在其中找到2D,然后选择Sprite Packer后点击Pack开始打包,等待打包程序执行完成后,就可以在这个面板中查看到Sprite合成图集后的效果:

注意:

  • 如果你完成上述步骤,没有发现合并的图集,可以点击Pack进行更新,这样就可以看到刚刚添加的图片

第二种方式

通过在Project面板右键选择Create然后在二级菜单中选择Sprite Atlas创建一个图集:

然后点击图集就可以在Inspect面板添加需要打包进图集的Sprite

通过这样的方式打包图集,相比于第一种,可以控制打包后的图集的大小、压缩方式等等,有比较强的定制性。

4、为何打包图集可以提升性能表现

1,批处理
要了解这样的原因,首先需要理解Draw CallBatches的概念,

关于Draw Call与Batche

  • Draw Call的知识可以查看之前的文章:Unity 渲染流水线:CPU与GPU合作创造的艺术
  • 关于Batches(批处理),即使你不了解,通过名字也可以理解,这是一种通过成批来处理的技术,总的来说,这个数值越小,对于硬件设备性能越友好

如果没有打包成为图集,如果场景中有三个Sprite,会产生三个Batches,如图,场景中有三个没有经过图集处理的Sprite,运行场景,发现产生了5个Batches(天空盒占一个,另外一个相机处理产生):

接下来将三个Sprite打包进一个图集,可以很明显的发现,只产生了一个Batches,三个Sprite是通过一个批次提交的Draw Call,这样就可以减少Draw Call,提升性能表现:

2,方便图集的压缩

对于图集打包的另一特点就是图片资源的压缩,在Unity中,只能压缩图片大小为2的次方的图片,这就代表着不规则的图片不能被压缩。
而通过图集这样的方式,可以很方便的将一组不规则的图片合成一张规则的图集,这样就可以进行相应的压缩操作。

Unity 将Sprite打包进图集相关推荐

  1. Unity中使用TexturePacker优化图集

    转自:https://blog.csdn.net/Happy_zailing/article/details/87190150 TexturePacker是一款非常牛逼的打图集软件,是一款收费软件.这 ...

  2. 【Unity】Sprite Atlas功能讲解

    目录 SpriteAtlas创建方法 1.Type: Maskter母版 Variant变体 2.Include Build: 勾选时运行游戏时自动加载入内存中,否则需要手动加载(使用到的时候才会加载 ...

  3. UGUI Sprite Packer:图集自动ETC1+Alpha

    http://www.jianshu.com/p/a08b861af4e9 今天研究了一下UGUI的图集生成,具体步骤就是设置Texture的Packing Tag名称,并且Sprite Mode设置 ...

  4. [转]Asp.net 将js文件打包进dll 方法

    Asp.net 将js文件打包进dll 方法 注:本文基于.NET 2.0 和 VS2005 我们在编写 Server Control 的时候难免要用到一些客户端脚本(javascript),如何把脚 ...

  5. 使用Maven Assembly plugin将依赖打包进jar

    一个Eclipse的工程,在pom中配置了若干依赖,需要将pom中所有的依赖全部打包进一个jar包中,可以选择的方案有maven-assembly-plugin和fatjar.以前采用fatjar进行 ...

  6. Qt for Android / ios 将图片或文件打包进安装包中

    概述 用 Qt 做程序开发,图片或翻译文件的引用有两种方式,一种是直接引用,本地图片, 一种是编译到资源文件中,其实直接添加在资源文件中是最方便的,不需要考虑文件存放的问题,但是这样可能带来的问题是启 ...

  7. DotNet4应用程序打包工具(把DotNet4安装程序打包进你的应用程序;WINAPI开发,无dotNet环境也可顺利执行)【一】整体思路...

    先说废话 很多朋友对我写的这个系列的第五篇比较感兴趣:http://www.cnblogs.com/liulun/archive/2011/12/08/2280110.html 因为我承诺第五篇就公布 ...

  8. 控件注册 - 利用资源文件将dll、ocx打包进exe文件(转)

    很多时候自定义或者引用控件都需要注册才能使用,但是如何使要注册的dll或ocx打包到exe中,使用户下载以后看到的只是一个exe,点击直接运行呢?就像很多安全控件,如支付宝的aliedit.exe那样 ...

  9. java解析上的jar包里的pom_Maven引入本地Jar包并打包进War包中的方法

    1.概述 在平时的开发中,有一些Jar包因为种种原因,在Maven的中央仓库中没有收录,所以就要使用本地引入的方式加入进来. 2. 拷贝至项目根目录 项目根目录即pom.xml文件所在的同级目录,可以 ...

最新文章

  1. Windows10下安装配置 perl 环境
  2. wxWidgets:通过组合现有小部件制作新的可重用小部件
  3. 阿里一面 —— 什么是多线程?
  4. python中装饰器的参数与返回值
  5. TalkingData的Spark On Kubernetes实践
  6. 真香 | 谁说的 StringJoiner 不好!真香警告……
  7. mac 蓝牙 串口调试 助手(工具)
  8. STM32——SDIO进行SD卡读写测试
  9. 网络工程师(软考中级-华为认证)
  10. java 几何平均数_统计学——平均数
  11. 彩球滑梯java_玩过这些手机游戏的人都老了 那些曾经风靡一时的手机游戏大盘点(二)...
  12. 2-2 李宏毅2021春季机器学习教程-类神经网络训练不起来怎么办(一)局部最小值与鞍点(Local Minima and Saddle Point)
  13. 针对屏幕显示模糊/清晰度不够的3种调节途径
  14. SQL中将查询结果赋值给变量
  15. 计算机管理映像路径,win10系统任务管理器查看映像路径的详细方案
  16. GNU/Linux 初学之旅(转)
  17. MySQL+Mybatis
  18. 计算机选择位置不能选桌面,win7电脑桌面的图标无法拖动位置了怎么办?
  19. [PTA]实验3-4 统计字符
  20. 如何提高福禄克DTX-1800的测试余量

热门文章

  1. 家用计算机的发展历史,计算机发展简史
  2. C#读取Excel表格去掉空行
  3. C++ 探索之旅 | 第一部分第二课:C++ 编程的必要软件
  4. java取余位运算_使用位运算取余
  5. 导入EXCEL表时,提示找不到可安装的ISAM怎么办
  6. 雷达 -- 频谱历史介绍
  7. poj2723 2sat判断解+二分
  8. 华为鸿蒙系统提升,首个华为鸿蒙2.0续航测试来了!实打实10%提升
  9. 北大软件工程与计算机,北京大学软件工程考研经验分享
  10. 地下水运动方程的解析解(一维潜水)