unity UI框架

主要思想:栈的运用。使用一个栈来保存场景中的实例化出来的各个UI界面,使用Push()入栈方法显示栈顶界面,此时栈中其他界面不能交互。当关闭当前界面时使用Pop()弹栈方法关闭并移除当前界面,此时栈顶的元素变成第二个元素也就是第二个界面,该界面就重新获得交互能力。该栈使用一个管理类(UIManager)来进行维护。

UIManager,UI框架的核心管理类。

  1. 解析保存所有面板信息,从json文件里读取所有panel的名称、类型和预设路径等信息
  2. 创建保存所有面板的示例
  3. 管理保存所有显示的面板,运用容器栈,最底下的是主菜单、人物信息等,上面是打开的面板,顶部是正在打开的面板

所有Panel类有一个公共的基类BasePanel,用来管理公共的逻辑,比如每个页面都有相似的状态流程变化,从一开始显示、被覆盖、恢复显示、到关闭退出,只需要将这些状态封装成函数放在基类中并声明为虚函数,然后在子类中实现即可。

页面状态流程图:OnEnter界面显示 -> OnPause界面暂停(弹出了其他界面) -> OnResume界面继续(其他界面移除,恢复本界面的交互)-> OnExit(界面被移除,从页面移除不显示)

猜你喜欢

转载自blog.csdn.net/crayon_chen/article/details/80151142