Unity旧版图集和新版图集

1、关于旧版图集

===>结论:设置PackingTag就可以了。

===>分析:设置好PackingTag,那么在进行打包的时候,同一个标签的会被打到1个图集里面,图集最大为2048x2048的。如果占不下,则会出现第2个图集。图集会变成(group 0)、(group 1)这样的形式。

                     打AB的时候,将散图打进一个AB,这个AB也会自动把散图所属的图集给一并打进AB当中(如下图)。这样的话,在加载的时候,比如要加载一个预制--->预制依赖散图所在的AB--->这个散图所在的AB被加载进来--->这个AB中的内容就会加到内存中了,包括图集(这一点很重要,这个能解释后面为什么新版图集要和散图打到同一个AB中;为什么单独打图集的话,预制中的依赖项会没有图集所在的AB)。

 

 

这里要解释一下为什么ui_mail_513和ui_mail_515的type是Texture2D类型的,因为这两张图并没有设置PackingTag,却依然打到这个AB中了,所以会以Texture2D的形式存在,Size也会大很多。从这里可以看到旧版图集的缺陷---对于PackingTag的管理。

这个AB里面有两个旧版的图集会被一并打进来,这个是隐式加入到AB的,非显式的(也就是没有手动指定这个图集要打到这个AB,是auto的、自动的)。这也确实是按着Unity所说的那样,开发者不用去管图集,模糊图解的概念,给好PackingTag就行了,打AB、打包和加载都用散图的方式就行了,图集这块儿不用管,引擎帮你做。

2、关于新版图集

===>结论:勾选IncludeInBuild,将图集和散图打到一个AB中。

===>分析:在打AB的时候,如旧版图集一般,但这里需要显式的将图集加入到散图所在的AB中(图集和散图打到同一个AB,如下图);因为如果图集单独打AB的话,预制中的依赖项是不包含图集所在的AB的。而加载的时候,是先从AB中拿出SpriteAtlas,然后在从SpriteAtlas中得到Sprite的。这时候,加载一个预制(预制中的依赖项先加载进来,然后加载预制),就会发现,SpriteAtlas是没有加载进来的。

 

posted on   _依靠  阅读(356)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示