Unity UI框架开发(4)--实现UIWindowCtrl
来源:互联网 发布:程序化交易软件 编辑:程序博客网 时间:2024/06/02 06:15
最后一个类,也是最重要的一个控制类,功能包括窗口的创建、显示、
隐藏、重现、删除等。
由于最近忙,没时间详细解读,看客们只能自己研究学习了~_~。
public class UIWindowCtrl { private UIBaseWindow currentWindow; private List<UIBaseWindow> mWindowList; private static UIWindowCtrl _instance; public static UIWindowCtrl GetInstance(){ if (null == _instance) { _instance = new UIWindowCtrl(); } return _instance; } private UIWindowCtrl() { mWindowList = new List<UIBaseWindow>(); } // 当前显示的窗口 public UIBaseWindow GetCurrentWindow() { return currentWindow; } // 显示一个窗口 public void ShowWindow(System.Type type) { if (null != currentWindow && !(currentWindow.GetType().Equals(typeof(Win_Main))) ) { // 如果是Win_Main主窗口不关闭,可以在其上加显示其他窗口 // 否则先关闭当前窗口,再显示其他窗口 if (!currentWindow.GetType().Equals(type)) { WindowStop(currentWindow); currentWindow = null; } } UIBaseWindow window = WindowContains(type); if(null!=window){ WindowResume(window); }else{ CreateWindow(type); } } // 创建一个窗口实例存于窗口列表 private void CreateWindow(Type type) { UIBaseWindow window; window = Activator.CreateInstance(type) as UIBaseWindow; mWindowList.Add(window); currentWindow = window; window.OnCreate(window.ToString()); WindowResume(window); } // 窗口的重现 public void WindowResume(UIBaseWindow window) { currentWindow = window; window.OnResume(); } // 判断窗口是否已存在,避免重复创建 private UIBaseWindow WindowContains(Type type) { foreach(UIBaseWindow window in mWindowList){ if(type.Equals(window.GetType())){ return window; } } return null; } public void WindowStop(UIBaseWindow window) { window.OnStop(); } public void ClearWindowData() { if(mWindowList.Count>0){ mWindowList.Clear(); } currentWindow = null; }}
0 0
- Unity UI框架开发(4)--实现UIWindowCtrl
- Unity UI框架开发(2)--实现UIBaseWindow
- Unity UI框架开发(3)--实现UIBaseView
- Unity开发UI框架搭建
- Unity UI框架开发(1)--框架介绍
- Unity 客户端框架(六):UI框架
- Unity 客户端框架(六):UI框架
- Unity 简易UI框架
- Unity游戏UI框架(九):实现多语言管理
- 【Unity自己写框架】FairyGUI UI框架(一)
- 【Unity自己写框架】FairyGUI UI框架(一)
- Unity实现UI渐变效果(UGUI)
- Unity实现UI渐变效果(UGUI)
- Unity简单UI框架搭建
- Unity游戏UI框架(一)
- Unity UI层级管理框架
- Unity中实现UI跟随
- Unity,UI实现滚动内容
- Java-标识符
- Spring集成ActiveMQ
- 第三方App接入微信登录
- ping命令的应用
- Matlab与线性代数 -- 数组的乘法与除法
- Unity UI框架开发(4)--实现UIWindowCtrl
- NFC 基础
- CC2530协议栈工作流程
- 第九周 项目二 【对称矩阵压缩存储的实现与应用(1)】
- [模板] Other
- 基于中国剩余定理的加密算法初探
- 栈空间和堆空间大小
- HDU 5952 Counting Cliques(2016ACM/ICPC亚洲区沈阳站-重现赛)
- 【我的Android进阶之旅】如何在浏览器上使用Octotree插件树形地展示Github项目代码?