UGUI整体解决方案-优化篇_第三章
之前是创建动态图集,这个loadPack协程是,加载动态图集接口,逻辑上,也就是通过WWW文件链接的形式,加载图集对应的PNG图片,和JSON配置文件,然后加到mSprites图片容器即可
资源释放函数
在销毁自身的时候,会调用
通过id,从mSprites容器提取图片
外部调用,动态打包图集的Process接口,判断缓存cache是否存在,如果存在,就调用loadPack加载即可,否则,就调用createPack动态创建图集
测试场景,有两个,其中第一个是SelectView场景
回顾一下,这些可选的装备组件,每个都包含Image图片,Button按钮,还有RuntimeAltasItem脚本,其中包含了,当前Image加载的图片资源路径
对应逻辑
它们的父物体,挂载着一个SelectView脚本,是用来统一管理,其中子物体
对应的具体逻辑,遍历子物体的Button组件,拿到它的RuntimeAltasItem组件,如果Action委托_onSelected回调不为空,就触发该回调即可; 外部通过AddSelectedListener函数,对_onSelected进行赋值;
被选中的图片,对应这仨组件的修改
其中会挂载,对应的逻辑,其中包含ShowName枚举作为ID,也会有RuntimeAltasItem作为路径存储相关; Init函数,对id、图片、RuntimeAltasItem路径存储相关,进行赋值初始化即可; SetSprite是设置使能图片,AddListener是添加,Button按钮的点击监听;
GetData函数接口,是用来创建一个新的KeyValuePair键值对
被选中节点,对应的父物体,也有挂载一个管理脚本
对应的,具体脚本逻辑,在Start开始函数中,遍历transform,通过AddComponent的形式,往子物体添加需要的RuntimeAltasItem和ShowItem组件; ShowName枚举,作为id,也作为传参,完成Init初始化,然后id自增,ShowItem的逻辑体,通过AddListener完成,子物体按钮的点击监听触发;
还有两个公共函数接口,第一个是用来外部调用,分别是设置,当前选中的,被选物体节点,对应的Sprite图片,被选中的RuntimeAltasItem的Path字段,完成赋值; 第二个,GetPaths函数,就是通过上述解析的GetData方法,完成 ShowName枚举和Path路径 键值对的构建,添加到temp字典容器; 最后返回这个字典即可;
选择结束后,点击”完成“按钮,也是有对应挂载了一个逻辑
具体逻辑,就是调用,动态打图集算法的GentatorNewAltas函数,完成动态打一个”Test“的图集,完成图集之后的complete回调,是会调用LoadingView的SwitchScene方法,完成场景的切换即可
模拟加载,使用的是Loading节点,默认情况下,是隐藏的
对应具体逻辑,其中加载场景,使用的是异步加载
加载页面,初始化函数,包含使用,Dotween动画插件,完成文本的动画显示; 剩余的函数,就是设置页面显隐、还有调用上述,异步加载切换场景的SwitchScene函数接口了;
Canvas画布,挂载了一个,统一管理以上提及,所有逻辑脚本的ShowView功能
对应的具体逻辑,就是联结,选择的SelectView逻辑,和被选中的SelectShowView逻辑,还有”完成“按钮的,Init逻辑初始化,也是通过GetComponentInChildren的方式,拿到子物体的LoadingView加载逻辑,作为传参即可; SetShowItem函数,就是当前被选中的实体,对应修改sprite图片和path加载路径即可;
以上,就是动态打图集的,相关逻辑解析