Unity 将Sprite打包进图集 |
您所在的位置:网站首页 › unity打包文件比原文件还大怎么办 › Unity 将Sprite打包进图集 |
前言:
打包图集是一个很简单的过程,但是如果没有这样的经验,可能不知道如何下手 本博客大概说一下打包流程,以及一些基本原理 1、为什么要打包图集首先要了解一点,在UGUI中即使你什么都不干,在项目打包时,Unity也会自动将你的一些小图片资源合在一张大图里面,也就是合成一张图集,但是这种默认的方式,会产生大量的Draw Call,对于性能消耗比较大 而NGUI则是开发者必须要将图片资源打包成图集,然后才能使用这些图片资源 因此无论是UGUI还是NGUI,掌握图集的打包都是非常重要的 2、打包开始前在合成图集开始前,先了解一下Sprite 首先,在Unity中,Sprite的生成是由Texture2D加一个轴点以及一个矩形来构成的,这就是Sprite为什么作为2D场景元素存在的原因,有一个轴点可以作为坐标轴点,而其矩形可以用来生成网格,处理碰撞体这些东西: 点击任一一张Sprite,可以在Inspect面板看到下面这些信息
第一种方式: 注意: 根据官方文档描述,该方式在 Unity 2020.1 及更高版本中已弃用,并且将不再作为Sprite Packer 模式的选项提供在Project Setting中找到Editor,然后在其中的Sprite Packer选择Always Enabled(Legacy Sprite pakcer): 在这里,我把三个Sprite命名为Test 完成上面的设置后,我们可以点击导航栏的Windows,在其中找到2D,然后选择Sprite Packer后点击Pack开始打包,等待打包程序执行完成后,就可以在这个面板中查看到Sprite合成图集后的效果: 注意: 如果你完成上述步骤,没有发现合并的图集,可以点击Pack进行更新,这样就可以看到刚刚添加的图片第二种方式 通过在Project面板右键选择Create然后在二级菜单中选择Sprite Atlas创建一个图集: 然后点击图集就可以在Inspect面板添加需要打包进图集的Sprite: 1,批处理 要了解这样的原因,首先需要理解Draw Call与Batches的概念, 关于Draw Call与Batche Draw Call的知识可以查看之前的文章:Unity 渲染流水线:CPU与GPU合作创造的艺术关于Batches(批处理),即使你不了解,通过名字也可以理解,这是一种通过成批来处理的技术,总的来说,这个数值越小,对于硬件设备性能越友好如果没有打包成为图集,如果场景中有三个Sprite,会产生三个Batches,如图,场景中有三个没有经过图集处理的Sprite,运行场景,发现产生了5个Batches(天空盒占一个,另外一个相机处理产生): 接下来将三个Sprite打包进一个图集,可以很明显的发现,只产生了一个Batches,三个Sprite是通过一个批次提交的Draw Call,这样就可以减少Draw Call,提升性能表现: 2,方便图集的压缩 对于图集打包的另一特点就是图片资源的压缩,在Unity中,只能压缩图片大小为2的次方的图片,这就代表着不规则的图片不能被压缩。 而通过图集这样的方式,可以很方便的将一组不规则的图片合成一张规则的图集,这样就可以进行相应的压缩操作。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |