购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

Unity 2D
如何使用S prite Packer

请扫描以上二维码-下载本节项目源文件

本节学习要点

01 Unity 内置的Sprite Packer打包工具

02 Sprite Packer的打包模式

03 验证Sprite Packer打包效果

04 解除Sprite Packer打包

Unity 内置的Sprite Packer 打包工具

在制作游戏的过程中,会使用到许多独立的图片,每一张独立的图片都会占用GPU的一部分显存,为了优化游戏的性能,我们通常会把这些零碎的图片打包在一起,这样不仅可以节省系统内存,也可以使得读取图片的速度成倍加快。

Unity内置的图片打包工具—Sprite Packer,可以帮助我们把零散的独立图片打包成 灵序列集合 (Sprite-sheet),来优化游戏的性能。

Sprite Packer功能非常强大,使用起来也非常简单,现在就让我们一起来体验SpritePacker是如何工作的。在 Assets→Sprites 文件夹中有许多独立的图片资源,下面介绍如何把它们打包起来。

步骤1: 首先把它们全部选中,按住Shift键单击第一张图片和最后一张图片,即可完成全选操作,也可以按住Ctrl键一个一个地选择,总之要确保所有要打包的图片被选中。

步骤2: Inspector (检视)面板中的 Packing Tag (打包标签)文本框中输入Player字符,这是为了给所有要被打包的图片打上统一的标签。然后单击 Apply 按钮。

提示: 如果忘记单击 Apply 按钮也无须担心,Unity会在用户执行操作后,提醒用户是否确认刚刚的操作。

步骤3: 在顶部菜单栏中选择 Window Sprite Packer 命令,打开打包工具。

现在只需单击一下左上角的 Pack (打包)按钮。Unity就会自动地把这些图片打包成一张很大的精灵序列集合(Sprite-Sheet)。

当你看到这些图片的时候也许会发现,有许多空白的像素溢出了。不用担心,这些空白像素在用户使用资源的时候既不会显示,也不会占用系统的额外资源。而且当打包的资源很多时,Sprite Packer会帮助自动分页,同时自动帮助用户优化这些图片的尺寸。

Sprite Packer的打包模式

Sprite Packer有3种打包模式,分别是DefaultPackerPolicy、TightRotateEnabledS pritePackerPolicy和TightPackerPolicy。

DefaultPackerPolicy:是默认的打包方式,也是矩形打包方式。此模式会把所有的小图按照矩形的方式来排列,如果有宽高不一样的图片,它们会自动补齐。

TightRotateEnabledSpritePackerPolicy:是紧密可选择打包方式,即尽可能地把图片都打包在纹理上,这种方式最节省空间。

TightPackerPolicy:是紧密打包方式,也就是尽可能地把图片都打包在纹理上,这种方式要比DefaultPackerPolicy打包的图片更多一些,也更省空间。

根据纹理的布局可以清晰地看到TightPackerPolicy纹理更加紧密。DefaultPackerPolicy模式打包是Unity所推荐的,理论上所有纹理打包都可以使用DefaultPackerPolicy来完成。

验证Sprite Packer 打包效果

下面来验证一下打包后是不是真的可以优化游戏的性能。

步骤1: 拖动5个对象到场景(Scene)中,可以在 Statistics (统计分析)面板中看到Batches是6。

步骤2: 运行游戏,可以在 Statistics (统计分析)面板中看到Batches是2,说明游戏在运行时,图片节点被优化了。

解除Sprite Packer 打包

步骤1: 单击 停止游戏 按钮,选中刚刚被打包的所有图片,在 Inspector 面板上删除 Packing Tag 文本框中的Player字符,单击 Apply 按钮,Unity就自动解除了之前的纹理打包。

步骤2: 再次运行游戏,在 Statistics (统计分析)面板中可以看到渲染对象的数量变成了6个,纹理打包可以很有效地帮助游戏优化性能,接下来可以重新把这些纹理打包,以便后边的项目可以继续使用。

小结: Sprite.Packer.可以帮助用户自动打包独立的动画图片资源,以及把整张的sprite图片裁切成独立的小图。Unity.会自动地帮助用户完成这些工作,读者也可以自己动手使用Unity.

提供的强大工具Sprite.Packer,一定会发现很多令人惊喜的功能。 p6F0DqFKlnBL3MWo1CPL9VVtK0GTabIXNbIC42vDKojepeUeuviFqkhKBN2Asuai

点击中间区域
呼出菜单
上一章
目录
下一章
×