Unity UI框架开发(2)--实现UIBaseWindow
来源:互联网 发布:分布式关系型数据库 编辑:程序博客网 时间:2024/06/05 14:32
上篇介绍了UI框架的实现原理了,现在就是正式用代码实现UI框架了。
从上篇博客中我举例了实现这个框架用到的三个基类 UIBaseWindow、UIBaseView和UIWindowCtrl;那么下面将分别实现它们。
首先是窗口类UIBaseWindow:
public class UIBaseWindow { public GameObject winParent = null; public virtual void OnCreate(string winName) { if (winParent == null){ // GameSettings.GetInstance().UIWin是一个对象,可自定义,也可以直接使用CanVas,反正是用来存放UI的 winParent = ResMgr.CreateEmptyGameObject(GameSettings.GetInstance().UIWin, winName); } } // 在当前窗口切换其他窗口 public void StartWindow(System.Type windowName) { UIWindowCtrl.GetInstance().ShowWindow(windowName); } // 重现当前窗口 public virtual void OnResume() { winParent.SetActive(true); } // 隐藏当前窗口 public virtual void OnStop() { winParent.SetActive(false); }}
该基类主要封装了几个方法,都很简单,主要说下几点。
(1)OnCreate(string winName)方法创建一个空对象,是用来存放该窗口的后续所有子对象,其中用到调用的方法是我封装的一个方法。
public static GameObject CreateEmptyGameObject(GameObject parent, string name) { GameObject obj = new GameObject(name); obj.transform.SetParent(parent.transform); obj.transform.localPosition = Vector3.zero; obj.transform.localEulerAngles = Vector3.zero; obj.transform.localScale = Vector3.one; return obj; }
(2)StartWindow(System.Type windowName)方法是启动一个窗口,参数是一个窗口类名的类型,如:typeof(Win_Shop);至于调用的UIWindowCtrl类方法将在后面说明。
下面我们实现一个继承于基类的具体窗口类Win_Main。
public class Win_Main : UIBaseWindow { private MainView mMainView; public override void OnCreate(string winName) { base.OnCreate(winName); mMainView = new MainView(this, "Prefas/UI/UIMain/MainView"); } public override void OnResume() { base.OnResume(); }}
好了,现在我们再来梳理下这个UI框架,以上面代码为例;比如我要显示一个主界面Main,这个界面主要包含一些背景图和、商城、设置、帮助、等按钮,这些都做成一个预设MainView,然后从上面代码看到一个同名类MainView,该类实现了预设的各种功能。所以当我要OnCreate()一个窗口时就会调用这个MainVeiw预设界面了。
0 0
- Unity UI框架开发(2)--实现UIBaseWindow
- Unity UI框架开发(3)--实现UIBaseView
- Unity UI框架开发(4)--实现UIWindowCtrl
- 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实现滚动内容
- 单链表实例1
- 分离颜色通道(split)和多通道融合(merge)
- Java的native方法
- 伪分布式web页面查看 待完成
- SQL大量数据查询优化--三十则
- Unity UI框架开发(2)--实现UIBaseWindow
- 单链表实例2
- 关于MVC/Model2
- Android 小项目之---- 计算器 使用同一个事件监听完成 加减乘
- J2EE之Spring的IOC说明
- Java SSH 框架
- Ubuntu之Sailfish OS开发环境搭建
- 第六章 JAVA集合之ConcurrentHashMap源码浅析
- iReport 无数据源格式报表