欢迎光临散文网 会员登陆 & 注册

UI系列-管理器以及窗口基类

2022-07-27 15:55 作者:YONCE1999  | 我要投稿

项目之中拥有众多的UI界面,我们需要统一管理所有UI才能有效调配界面,所以我们需要写一个统计的管理类,以及每个UI都要有统一的基类,并且每个UI按钮元素都对应一个处理输入的句柄。另外对于UI来说,有通用UI,也有非通用UI,有常用UI和非常用UI之分。接下来我们把细节规划一下。


从管理器开始

我们需要用一个单例实例来管理所有的UI界面,让他们能有统一的接口进行,生成,展示,销毁,查找等活动,创建UI管理类是最好的选择,我们可以命名它为 UIManager,这个名字符合它代表的功能。

UIManager 具体里面要做些什么呢。它需要创建UI,需要查找现有的某个UI,以及需要销毁UI,以及一些UI的统一接口调用和调配工作。UIManager 承担了所有UI的管理工作,因此UI在生成出来后的实例都将存储在这里。不仅如此,一些UI常用变量也存储在里面,比如屏幕的适配标准大小,比如UI的Camera实例等等。

这样一来,第一个方向确定了,那就是UIManager是UI界面的管理员,统筹管理UI问题。它包括了UI的众多统筹需求,比如下层UI切换到上层,比如加载方式变更,比如选择性预加载UI等,都需要在UIManager里编写。


窗口基类,通过重写初始化和销毁的方法来控制窗口的周期,用绑定型输入响应事件来响应需要的输入事件。

UI管理器,存储已经打开的窗口,控制对应窗口的打开销毁等操作。通过预制所在的地址实例化对象。

   UIManager

输入事件响应机制

借助EventTrigger接收来自 EventSystem 的事件,并为每个事件调用已注册的函数。通过监听EventTrigger中的事件,在UIwindow添加需要响应的的功能即可,通过一个类实现UI的响应,避免使用过多的例如Button,Selectable等组件。

这里我们有了统一管理UI的管理类,有了界面的基类,有了处理输入事件句柄的事件类,但任旧有许多内容和方法需要补充,大部分UI界面我们都能够处理,但很多原生的组件用起来不是很好,效率也特别的差,所以我们需要构建自己的高效的UI自定义组件。但是在此之前,下一期将会先回溯一下AssetBundle相关内容。

UI系列-管理器以及窗口基类的评论 (共 条)

分享到微博请遵守国家法律