首页 > 编程知识 正文

框架柱,xposed框架

时间:2023-05-04 04:26:54 阅读:201591 作者:1283

1:搭建主菜单界面,以及其他的小面板,做成相应的Prefeb,放到Resources文件夹下面

2:UI框架得知道UI的名字以及他们的路劲,所以新建一个json文本,用来保存所有的ui名字,以及他们的路径
<1>::ui预制体的名字:
<2>:josn文本存储UI预制体的名字和路径
<3>:定义一个类类枚举UI预制体的名字

<4>:将json信息序列化到类中
3::将多个UI预制体的json对象保存到字典中,该字典保存着UI的名字,已经对应的路径
<1>测试保存到字典中成功与否,测试前的准备
<2>:拓张字典类的根据键获取值的方法,首先现在Unity的Asset文件夹目录下创建一个文件夹为Extension,专门用来存放拓展脚本

<3>在管理器UIManager中定义一个方法,专门用于测试json信息是否加载到字典中

❤️.1>调用的入口,新建一个脚本,UIroot,调用管理器里面的测试方法
4:每个面板都挂载着和它名字一样的脚本,而且它们都继承自BasePanel脚本,所以它们也是BasePanel

<4.1>每个面板挂载着对应名字的脚本,但是挂载着的脚本继承了BasePanel脚本
<4.2>BasePanel脚本,
5:往字典中添加UI预制体,以及他们对应的脚本,并且返回对应脚本
<1>根据面板名字找到面板上的脚本后,保存到字典中,下一步将会根据这个字典,获取到对饮UI身上挂载的脚本来入栈,先定义一个存储栈 private Stack panelStack;
6:总结:<1>:点击按钮,弹出面板,关闭该面板,再次打开,它也只会实例化一次,因为程序运行起来,调用UIManager.Instance的时候,json信息就反序列化到了相应字典中,然后当我们点击按钮来显示相应的面板的时候,此时调用的是UIManager.Instance.pushPanel(type)该方法还会调用getBasePanel(type)->这个方法先会去装载着UI名字和BasePanel的字典中根据type来查询,如果有则直接返回,否则,则会根据这个type去路径字典中查找到路径,实例化它,将这个实例化并且设置了父物体的物体添加到相应的字典中,(添加字典的原因在于,方便下次来查询,如果查询到了,就直接用里面的,这样如果字典中有这个实例化的UI,就直接就返回这个UI的名字和脚本,没必要再去十实例化)<2>Stack里面入栈和出栈存储的是UI面板对应的脚本,这样操作其实是不影响路径字典和脚本字典的,已经实例化好了的面板也不会销毁,这样的话入栈和出栈只是在操作不同UI面板上挂载的脚本
7:采用DoTweening的方法和Cavas Group组件的方式来控制面板的消失以及交互
<1>主菜单面板

<2>:背包面板


<3>背包面板里面的小面板
<4>:商城面板【其他面板的脚本和商城面板的类似,到此UI框架结束】

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。