基于 Unity3D 的自主UI框架开发的思考
发表于2017-02-06
以下列举UI系统中的要点,脱离出引擎,保留设计思想。
结构
- UISystem 负责管理UIWnd
- UIWnd是所有UI的基类
- 拓展UI公用组件,模块间公用,例如公共弹窗,UIIcon等
接口设计
我觉得接口非常重要,即使不同项目之间,重用率也非常的高。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | public interface IBaseWindow { public void Show(); public void Hide(); public void Destroy(); public void BringTop(); public void SetDepth( int value); public System.Action OnClose; public System.Action OnFinshShow; } interface IWindowAnimation { void EnterAnimation(EventDelegate.Callback onComplete); void LeaveAnimation(EventDelegate.Callback onComplete); void ResetAnimation(); } public interface IStack { public void Clear(); public void Push(UIWnd wnd); public void Pop(); } |
UI层级管理
- 解决不同ENUM_LAYER_TYPE的层级问题
1 2 3 4 5 6 7 8 9 10 | enum ENUM_LAYER_TYPE { NONE, DEFAULT, //深度0 TOP, //深度1000 POPUP, //深度2000 GUIDE, //深度3000 LOADING, //深度4000 COUNT } |