obsidian/笔记文件/2.笔记/UGUI整体解决方案-优化篇_第一章.md
2025-03-26 00:02:56 +08:00

3.5 KiB
Raw Permalink Blame History

如果是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