小眼游戏架构:UI篇:三层架构(UI集合层)

上一篇:讲解了UI层的设计原则,这篇说说UI集合的实现。

UI集合:给UIManager提供管理多个UI的功能

分析之前先看图
在这里插入图片描述
UI集合是承上启下的一个中间层,给UI管理层提供管理多个UI的功能。
UI集合的生命周期:加载,打开,关闭,卸载(关闭的一种)。
UI集合基于状态管理:
在这里插入图片描述

加载:

在这里插入图片描述

  1. 因为一个集合里面有多个UI,所以判断集合加载完成的条件是:UI集合内的所有UI全部加载完成。
  2. 如果在一个没有UI的场景里面加载一个UI,那么就会出现因UI还在加载中而出现的瑕疵:能看到场景,可能只有一帧的时间。如果只是这个瑕疵我们其实可以不用解决,关键问题是如果场景这个时候存在交互,没有UI层拦截事件的话,你很有可能触发一个流程外的操作,这个就不能接受了啊。所以我们需要加入一个屏蔽UI,这个屏蔽UI常驻内存的,所以不存在加载的问题,这样的话,在每个UI加载的过程中,这个UI都会存在,直到目标UI加载完成。

代码解释如下:
在这里插入图片描述

打开UI集合

在这里插入图片描述
就是简单的打开当前的待打开列表的UI,UI的状态变成已打开
代码解释如下:
在这里插入图片描述

关闭UI集合

在这里插入图片描述

  1. 关闭UI集合并且UI集合的状态变成等待打开中
    在关闭前保存UI的状态信息,目的是为了返回时恢复。
  2. 关闭UI集合并且UI集合的状态变成已关闭
    直接关闭所有的UI,不再做其他处理。
  3. 关闭UI集合中的某个具体UI:
    UI集合内有一个主UI,只要我们关闭的不是主UI,那么这个UI集合就不会被关闭,而是关闭你想关闭的具体UI。

代码解释如下:在这里插入图片描述

UI集合卸载

也是关闭的一种,只不过在关闭UI集合后,选择要不要卸载UI集合 。以节约内存。

项目地址:https://github.com/xiaoyanxiansheng/SmallEyeGame

下一篇:UI管理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值