【转】unity2017新功能Sprite Atlas详解

Sprite Atlas(精灵图集)
Sprite Atlas 针对现有的图集打包系统Sprite Packer在性能和易用性上的不足,进行了全面改善。除此之外,相比Sprite Packer,Sprite Atlas将对精灵更多的控制权交还给用户。由用户来掌控图集的打包过程以及加载时机,更加利于对系统性能的控制。
Sprite Atlas的主要有以下三个功能:
1.创建、编辑图集以及设定图集参数

2.添加图集Variant(变种)

3.运行时访问图集

下面将通过具体案例来分别展示以上三个功能。

创建、编辑图集及参数设定
在Unity 2017.1中,Sprite Atlas是一种资源,可以像其它资源一样在Unity中创建,例如预制件、场景等。

可以在检视窗口中设定要打包的精灵及其参数,例如图集的打包方式、输出贴图的压缩格式等。如下图所示,Potato就是一个创建好的图集,目前打包的对象包括了char_hero_beanMan这个Sliced Sprite。

P.S.这里可以支持多种类型,包括单个Sprite、Sliced Sprite、文件夹,以及这些类型的任意组合。
操作更加方便,对用户更友好。

此外,在检视窗口上还可以看到图集的一些参数设定,例如:打包时是否支持精灵旋转(Allow Rotation)、贴图的采样模式(Filter Mode)、压缩方式(Compression)等等。
在最下方的预览窗口中,可以查看图集的生成效果。这样就可以很清楚的知道图集的打包方式是否合理,是否存在大量被浪费的空间。

添加图集Variant(变种)
所谓Variant,就是指原有图集的一个变种。它会复制原有图集的贴图,并根据一个比例系数来调整复制贴图的大小。

这样的Variant通常用于为高分辨率和低分辨率的屏幕准备不同的图集。

因为如果只准备一套高分辨率的图集,在低分辨率的设备上占用内存过多。反之,如果只准备一套低分辨率图集,在高分辨率的设备上就会模糊。

通过Atlas Variant就可以很方便地解决该问题。如下图所示,Pot.sd是新建的一个低清图集,在检视窗口中将Type设为Variant,Master Atlas设为Potato。这里为了与原图进行更明显的对比,将Scale设为0.1 , Filter Mode设为Point。

运行时访问图集
Sprite Atlas作为一种资源开放给用户,支持在脚本中直接访问,还可以通过名字获取图集中的精灵

这样做的好处是,让用户可以更加直接地随时编辑图集,而且不用去单独加载图集中的每个精灵。

下面是一段动态换装的代码,该脚本通过LoadAsset加载SpriteAtlas类型的资源,再通过SpriteAtlas的GetSprite接口获取图集中的精灵,最后将精灵传递给SpriteRenderer来实现动态换肤的功能。相较于基于Sprite Packer的实现,整个过程要简单直接的多。


创建方式
Assets>Create>Sprite Atlas

官方文档参考
https://docs.unity3d.com/Manual/SpriteAtlas.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Q1:能否在NGUI多分辨率适应方面提供一些解决方案或者思路? 多分辨率适应涉及到以下几个方面:1.布局。通常可以...
    此年此景阅读 532评论 0 1
  • 背景和目的 本文的背景是《独立防线》(Killer)项目已进行到了一定阶段。虽然之前定下了UI制作规范,但中途也更...
    拥之则安H阅读 1,320评论 0 18
  • 背景和目的 本文的背景是《独立防线》(Killer)项目已进行到了一定阶段。虽然之前定下了UI制作规范,但中途也更...
    DonaldW阅读 23,365评论 5 100
  • 1. 鹿晗和关晓彤的公开燃爆朋友圈,我不想去评价个人,哪怕曾经我也是鹿晗粉,身为一个理智的粉丝,我不想因此去对关晓...
    仙女小妖阅读 239评论 0 0
  • 啊,当众演讲算是顺利结束吧,进下来还有演出。不要畏缩。相信自己!fighting!
    四叶草lover阅读 243评论 0 0