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