Unity3d Ugui 23图集Sprite Atlas

本文介绍了Unity3d中Sprite Atlas的使用,包括版本变化、安装开启、属性介绍、使用方法、代码加载以及常见问题解答。实验证明,使用Sprite Atlas能减少Draw Call,但不应勾选Allow Rotation和Tight Packing,且图片不应放在Resources中,以避免安装包变大。
摘要由CSDN通过智能技术生成

目录

前言

一:版本变化

二:安装和开启

1:安装

2:开启

三:Sprite Atlas属性介绍

四:使用

五:代码使用

1:加载

2:延迟加载

3:工具打图集

六:对网上一切常见的疑问以及bug进行测试

最终结论是:

1:问:使用图集以后Draw Call有没有变少?答:变少了

2:问:图集上勾选Allow Rotation,Tight Packing会有什么结果?答:会出现不可控不是自己想要的图片。

3:问:使用SpritePack时需要打图集的图片不能放在Resources里面,Sprite Atlas可以吗。放不放在里面对包大小有影响吗?答:不可以,如果放在里面图片会打成图集,但是原始图片在Resources里面会让安装包变大。

4:是否勾选Include in Build的区别是什么?


前言

Sprite Atlas作用和Sprite Packer相似,Sprite Packer具体使用参照上篇文章https://blog.csdn.net/HexianWHH/article/details/119463004?spm=1001.2014.3001.5501

由于该功能是unity后出的变化比较大,网上的文章很多是针对旧版本的Unity介绍,很多问题已经被Unity修改了。这里介绍一下最近unity发布正式版本中的使用

一:版本变化

图集Sprite Packer在 Unity 2020.1以及以后的版本不再作为精灵打包模式的可用选项。以后创建的任何新项目在打包纹理时将默认使用 Sprite Atlas打包图集。

本教程采用的unity版本是2020.3.13f1c1 Personal,由于Sprite Atlas功能变化比较频繁,如果界面或者机制不一样,请查看版本是否和本教程一致。

二:安装和开启

1:安装

导入图片以后设置Texture Type为Sprite(2D and UI),然后点击Sprite Editor。

注意:在这里PackingTag已经是禁用状态的了,旧版本是靠这个名称区分不同图集的具体参照上一篇文章。

如果没有安装插件会弹出提示

点击Window->Package Manager

然后把Packages切换到UnityRegistry,在查询框里面输入Sprite,找到搜索结果中的2DSprite的Install

现在右键Create->2D->Sprite Atlas就可以创建了

2:开启

 Edit -> Project Settings -> Editor -> Sprite Packer-> Mode -> Sprite Atlas V2 (Experimental) - Enabled。

Disabled:禁用图集

Sprite Atlas V1  - Enabled for Build:采用AssetDatabaseV1,打包时启用。

Sprite Atlas V1  -Always Enabled:采用AssetDatabaseV1,一直启用。

Sprite Atlas V2 (Experimental) - Enabled:采用AssetDatabaseV2

 AssetDatabaseV1 不能有依赖项,也不支持命名对象的导入器,所以 Unity 通过自定义机制打包其精灵图集,并将纹理的输出数据和渲染数据存储在 Library/AtlasCache 文件夹中。

对于Sprite Atlas V1和Sprite Atlas V2使用的区别:

Sprite Atlas V2:仅支持将精灵和纹理拖到 Objects for Packing,不能将文件夹拖到 Objects for Packing。

Sprite Atlas V1:支持将精灵和纹理和文件夹拖到 Objects for Packing,如果是文件夹会把文件夹下的所有纹理都打到图集里面。

V1和V2切换:V1切到V2时会把现有V1的Sprite Atlas自动切换成V2,如果有文件夹,会把文件夹下的纹理直接提取出来放到Objects for Packing里面

V2切到V1:会保持不变,就算之前是V1只要是切成V2了,再次把Sprite Packer-> Mode切换成V1,Sprite Atlas也切换不回去了,所有请切到V2之前先备份,免的出问题。

V2目前不支持通过脚本编辑

三:Sprite Atlas属性介绍

Type:    将精灵图集的 Type 设置为“Master”主精灵或“Variant”变体精灵。默认的 Type 设置为“Master”。将此属性设置为 Variant 时,Unity 会显示额外的属性设置。不同的分辨率可能采用不同的图集,可以通过Variant来对图集进行缩放控制。变体图集需要在其 Master Atlas 属性中设置主类型的精灵图集。变体图集接受主图集内容的副本以用作自己的内容。
Master Atlas:变体图集接受其主图集内容的副本以用作自己的内容。
Scale:设置变体精灵图集的缩放因子,范围介于 0.1 到 1 之间。变体图集纹理的大小是主图集纹理乘以 Scale 值的结果。默认和最大的 Scale 值为 1,这种情况下,变体图集纹理保持与其主图集的纹理相同。
Include in Build:选中此复选框可在当前构建中包含精灵图集资源。默认情况下会启用此选项。
Allow Rotation:选中此复选框允许在 Unity 将精灵打包到精灵图集时旋转精灵。这样可以最大限度提高组合后的纹理中的精灵密度,并且默认情况下会启用此选项。如果精灵图集包含画布 UI 元素纹理,请禁用此选项,因为 Unity 在打包期间旋转精灵图集中的纹理时,也会在场景中旋转它们的方向。
Tight Packing:选中此复选框可根据精灵轮廓而非默认矩形轮廓来打包精灵。这样可以最大限度提高组合后的纹理中的精灵密度,并且默认情况下会启用此选项。
Padding:定义精灵图集中各个精灵纹理之间的像素数。这是一个缓冲区,用于防止精灵图集中彼此相邻精灵之间的像素出现重叠。默认值为 4 个像素。
Read/Write Enabled:选中此复选框允许从脚本函数(例如 Texture2D.SetPixels 和其他 Texture2D 函数)访问纹理数据。如果启用此属性,Unity 将创建纹理数据的副本。这会使纹理资源所需的内存量翻倍,并可能对性能产生负面影响。默认情况下会禁用此属性。此属性仅适用于未压缩纹理或 DXT 压缩纹理,因为 Unity 无法读取其他类型的压缩纹理。
Generate Mip Maps:选中此复选框可生成 Mipmap。
sRGB:选中此复选框可将纹理存储在伽马空间中。
Filter Mode:选择 Unity 在变换过程中拉伸打包的纹理时如何过滤这些纹理。此设置将覆盖精灵图集中任何已打包的精灵的 Filter Mode 设置。有关更多信息,请参阅 Filter Mode 纹理导入选项。
Default (Texture Import Settings 窗口中的特定于平台的覆盖面板)    为精灵图集的每个目标平台设置分辨率、文件大小以及相关的内存大小要求、像素尺寸和纹理质量。此面板允许您覆盖精灵图集包含的各个纹理上的这些设置。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值