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是没有加载进来的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律