如果是UI显示,直接SetActive的话,会消耗比较大资源,所以一般会,通过另一种形式,设置UI的显隐,使用Canvas Group,设置Alpha透明值,就可以实现显隐UI的功能了
![[Pasted image 20240402131038.png]]
![[Pasted image 20240402131126.png]]
图集有新旧两种版本的,使用; 如果要使用,旧版本图集,这里是入口;
![[Pasted image 20240402131941.png]]
选这个
![[Pasted image 20240402132018.png]]
然后打开,旧版本的图集入口
![[Pasted image 20240402131852.png]]
点击Pack,就可以打包出,旧版本的图集了
![[Pasted image 20240402132051.png]]
打包标签也是对应得上
![[Pasted image 20240402132115.png]]
接下来,还是使用新版图集,需要在项目设置,重新切换一下
![[Pasted image 20240402132201.png]]
这时,旧版本图集,功能就会失效了,关掉就好
![[Pasted image 20240402132228.png]]
新版图集入口,右键点击,选择即可
![[Pasted image 20240402133158.png]]
新版图集,其中的一种Type类型是Master,勾选的项,都是为了更好处理,图片整合,这里选择打包图片的文件夹,就是Objects for Packing这里设置即可,具体参考[[【Unity】Sprite Atlas功能讲解]]
![[Pasted image 20240402133243.png]]
图片所在文件夹
![[Pasted image 20240402133758.png]]
而Variant变体Type类型,是基于Master的一个变体,需要基于已有的Master进行变体,会有Scale设置缩放,调整的是图片分辨率,可以看到,这个变体图集32kb,是比Master的128kb,体积上更小的,例如可用于缩略图等范畴
![[Pasted image 20240402133940.png]]
动态打图集,是用于,在实际场景,只打包需要用到的图集即可,测试场景是这个
![[Pasted image 20240402171937.png]]
可以看到,测试场景的这个脚本,对应的图片Path,是已经写死路径了,直接测试会出问题,打出来的图集异常
![[Pasted image 20240402171954.png]]
改一下逻辑,在运行的时候,Start函数就会自动,把这个写死的路径,改成实际的绝对路径,需要注意的是,GetAssetPath是Editor编辑器类,所以如果要打包成游戏,是不能用这个的,只是用来测试,参考[[获取unity的Asset目录绝对路径]]
![[Pasted image 20240402172052.png]]
运行游戏,可以看到,Path是正常赋值,对应图片的绝对路径了
![[Pasted image 20240402172242.png]]
动态生成图集,是需要生成方体,方形相关的类,和构造函数
![[Pasted image 20240403102611.png]]
还有一个SortableSize类,其中包含宽高和id,后续在打包图集的时候,也会调用这个排序类,对图片方体,进行排序,再打包图集
![[Pasted image 20240403103023.png]]
纹理材质,对应的预制体Asset,相关的类,还有与之对应的,数组; 它们都是Serializable序列化,参考[[细说序列化与反序列化的基本原理和过程]]
![[Pasted image 20240403103259.png]]
纹理材质,对应的打包相关,这个是跟选中的图片,和与其对应的路径相关
![[Pasted image 20240403103528.png]]
这是用来存储,图片根据大小排序的SortableSize相关的队列容器
![[Pasted image 20240403103824.png]]
构造一个SortableSize的allocateSize函数接口
![[Pasted image 20240403103920.png]]
插入新的大小排序相关,列表容器,实例化
![[Pasted image 20240403104021.png]]
调用上述allocateSize接口,然后加到新插入的排序列表容器
![[Pasted image 20240403104143.png]]